[英]How to set selected option of select input that is bound at run time in asp.net core?
我正在用 ASP.net 核心编写代码。 我有一个视图,用于编辑 model 并在其上插入。 我们有一个表格,最上面的行是 model 的记录,可以编辑,最后一行是用于在 model 中插入新记录的表格。下面显示了示例代码以进行更多解释。
家庭控制器.cs:
public IActionResult Insert()
{
ViewBag.ParentList= new SelectList(ShowParent(), "Id", "ParentCode");
MyViewModel viewModel = new MyViewModel ()
{
MyList = ShowAllItem(),
};
return View(viewModel);
}
[HttpPost]
public IActionResult Insert(MyViewModel myViewModel)
{
...some code...
}
[HttpPost]
public IActionResult Edit(MyViewModel myViewModel)
{
...some code...
}
我的视图模型.cs
public class MyViewModel
{
public int Id { get; set; }
public string Code { get; set; }
public string Name { get; set; }
public int ParentId { get; set; }
public List<MyModel> MyList { get; set; }
}
插入.cshtml:
@model MyViewModel
<table>
<thead>
<tr>
<th>Id</th>
<th>Code</th>
<th>Name</th>
<th>Parent</th>
<th>operation</th>
</tr>
</thead>
<tbody>
@foreach(var item in Model.MyList)
{
<form method="post">
<tr>
<td>
<div class="form-group">
<input asp-for="Id" disabled class="form-control" value="@item.Id" />
</div>
</td>
<td>
<div class="form-group">
<input asp-for="Code" class="form-control" value="@item.Code" />
</div>
</td>
<td>
<div class="form-group">
<input asp-for="Name" class="form-control" value="@item.Name" />
</div>
</td>
<td>
<div class="form-group">
<select asp-for="ParentId" class="form-control" asp-items="@ViewBag.ParentList">
<option value="0" disabled selected>Select...</option>
</select>
</div>
// ...PROBLEM IS IN THIS CELL...
</td>
<td>
<div class="form-group">
<button type="submit" asp-action="Edit" class="form-control">Edit</button>
</div>
</td>
</tr>
</form>
}
<form method="post">
<tr>
<td>
<div class="form-group">
<input asp-for="Id" disabled class="form-control"/>
</div>
</td>
<td>
<div class="form-group">
<input asp-for="Code" class="form-control" />
</div>
</td>
<td>
<div class="form-group">
<input asp-for="Name" class="form-control" />
</div>
</td>
<td>
<div class="form-group">
<select asp-for="ParentId" class="form-control" asp-items="@ViewBag.ParentList">
<option value="0" disabled selected>Select an item...</option>
</select>
</div>
</td>
<td>
<div class="form-group">
<button type="submit" asp-action="Insert" class="form-control">Insert</button>
</div>
</td>
</tr>
</form>
</tbody>
</table>
问题在代码中指定。 我想在 select 中输入编辑表单,通过 model (@item.ParentId) 选择选项集,但我不知道该怎么做。 我解决了这个问题还是没有任何解决方案?
经过多次尝试和搜索,我找到了解决方案。 我只是使用“名称”属性而不是 asp-for。 asp-for 可以指定选择的选项。
Edit 表单中的 select 标签应该这样定义:
<select asp-for="@item.ParentId" class="form-control" name="ParentId" asp-items="@ViewBag.ParentList">
<option value="0" disabled selected>Select an item...</option>
</select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.