Asp.net mvc 将选择列表绑定到mvc 3中的模型

Asp.net mvc 将选择列表绑定到mvc 3中的模型,asp.net-mvc,model-binding,selectlist,Asp.net Mvc,Model Binding,Selectlist,正在寻找有关在表单提交时将选择列表绑定到模型的帮助。这一切都有效 @Html.DropDownListFor(m => m.LectureRoomId, new SelectList(Model.LectureRooms, "Id", "Name"), new { @class = "input-small chosen-select"}) 但是,我们使用selected.js并希望使用optgroup对下拉项进行分组。据我所知,直到DropDownList for中的MVC4或5才支

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

 @Html.DropDownListFor(m => m.LectureRoomId, new SelectList(Model.LectureRooms, "Id", "Name"), new { @class = "input-small chosen-select"})
但是,我们使用selected.js并希望使用optgroup对下拉项进行分组。据我所知,直到DropDownList for中的MVC4或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>
此代码的工作原理是填充列表并且组都正确显示。但是,在提交表单时,我不知道列表将其所选项目绑定到哪个模型对象(如果有的话)。请您协助解释我将如何将所选项目列表绑定到模型,以便在控制器中使用它


谢谢

您的选择没有name属性,因此无法提交。将行更改为:

<select class="chosen-select" id="venues" name="@Html.NameFor(m => m.LectureRoomId)">
但是,帮助器的名称仅在MVC4中可用,但是您可以实现自己的帮助器,如中所述