寻找一些帮助,将选择列表绑定到表单提交上的模型。一切正常
@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>
此代码的工作原理是填充列表并且所有组都正确显示。但是,在提交表单时,我不知道列表将所选项目绑定到哪个模型对象(如果有)。您能否协助解释如何将所选项目列表绑定到模型,以便我可以在我的控制器中使用它。
由于
答案 0 :(得分:2)
您的选择没有name属性,因此无法提交。将行更改为:
<select class="chosen-select" id="venues" name="@Html.NameFor(m => m.LectureRoomId)">
但NameFor
帮助程序仅在MVC 4中可用,但您可以按照this answer中的描述实现自己的帮助程序。