You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中如何设置运行时绑定下拉框的选中项?

解决方案

方法1:手动构造SelectList指定选中值

在循环渲染编辑行时,为每个下拉框创建新的SelectList,传入当前item的ParentId作为选中值,替换原来的asp-items绑定:

@foreach(var item in Model.MyList)
{
 <form method="post">
   <tr>
     <!-- 其他列保持不变 -->
     <td>
       <div class="form-group">
         <select asp-for="ParentId" class="form-control" 
                 asp-items="@new SelectList(ViewBag.ParentList as IEnumerable<SelectListItem>, "Value", "Text", item.ParentId)">
             <option value="0" disabled>Select...</option>
         </select>
       </div>
     </td>
     <!-- 操作列保持不变 -->
   </tr>
 </form>
}

原理:SelectList的构造函数最后一个参数可以指定选中项的Value值,渲染时会自动匹配并选中对应的选项。


方法2:使用局部视图解决绑定冲突(更规范)

原代码中编辑行的表单绑定的是父模型MyViewModel的属性,而非循环项MyModel的属性,不仅会导致下拉框选中异常,还可能引发提交时的模型绑定问题。推荐使用局部视图拆分逻辑:

  1. 创建局部视图_EditItem.cshtml,模型指定为MyModel:
@model MyModel

<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>Select...</option>
                </select>
            </div>
        </td>
        <td>
            <div class="form-group">
                <button type="submit" asp-action="Edit" class="form-control">Edit</button>
            </div>
        </td>
    </tr>
</form>
  1. 在主视图Insert.cshtml中循环调用局部视图:
@foreach(var item in Model.MyList)
{
    @await Html.PartialAsync("_EditItem", item)
}

原理:局部视图直接绑定MyModel实例,asp-for="ParentId"会自动根据当前item的ParentId值匹配下拉框选项,无需额外设置,同时表单提交时模型绑定也更准确。


内容的提问来源于stack exchange,提问作者NedaM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:05:17