【问题标题】:Binding select lists to a model in mvc 3将选择列表绑定到 mvc 3 中的模型
【发布时间】:2017-01-14 18:37:19
【问题描述】:

在提交表单时寻求将选择列表绑定到模型的帮助。这一切都有效

 @Html.DropDownListFor(m => m.LectureRoomId, new SelectList(Model.LectureRooms, "Id", "Name"), new { @class = "input-small chosen-select"})

但是,我们正在使用 selected.js 并希望使用 optgroup 对下拉项目进行分组。据我了解,直到 DropDownListFor 中的 mvc 4 或 5 才支持 optgroup,因此我必须纠正自定义选择

<select class="chosen-select" id="venues" >
  @foreach (var group in Model.Campuses.Distinct())
  {
    <optgroup label="@group.Name">
    @foreach (var item in Model.LectureRooms.Where(r => r.CampusId == group.Id))
    {
      <option value="@item.Id" width="120px">@item.Name</option>
    }
    </optgroup>
  }
</select>

此代码在填充列表并且所有组都正确显示的意义上有效。但是,在提交表单时,我不知道列表将其选定项目绑定到的模型对象(如果有的话)。您能否协助解释我如何将选定的项目列表绑定到模型,以便我可以在我的控制器中使用它。

谢谢

【问题讨论】:

    标签: asp.net-mvc model-binding selectlist


    【解决方案1】:

    您的选择没有 name 属性,因此它不会被提交。将行更改为:

    <select class="chosen-select" id="venues" name="@Html.NameFor(m => m.LectureRoomId)">
    

    不过,NameFor 助手仅在 MVC 4 中可用,但您可以按照this answer 中的说明实现自己的助手。

    【讨论】:

      猜你喜欢
      • 2013-03-06
      • 1970-01-01
      • 2011-11-06
      • 2011-03-04
      • 2018-10-04
      • 1970-01-01
      • 2012-07-27
      • 2020-03-14
      • 1970-01-01
      相关资源
      最近更新 更多