【发布时间】:2018-02-10 10:55:24
【问题描述】:
我已经阅读了许多关于使用 MultiSelectList 的文章,但还没有理解我的 DropDownListFor 出了什么问题。我有一个 ListBoxFor,它具有相同的 View、ViewModel 和工作正常的数据。我想使用 DropDownListFor 因为 ListBoxFor 没有它的 optionLabel 参数。
第一次加载视图时,DropDownListFor 和 ListBoxFor 都会显示多个选定项。
当单击提交按钮时,选定的项目集合会被发送回控制器操作,并且视图会刷新,ListBoxFor 仍然显示两个选定的项目,但 DropDownListFor 只显示一个选定的项目。
控制器操作正在构造 MultiSelectList,如下所示:
vm.TasksFilterGroup.Assignees = new MultiSelectList(employees, "Id", "FullName", new string[] { "51b6f06a-e04d-4f98-88ef-cd0cfa8a2757", "51b6f06a-e04d-4f98-88ef-cd0cfa8a2769" });
查看代码如下所示:
<div class="form-group">
<label>ListBoxFor</label>
@Html.ListBoxFor(m => m.TasksFilterGroup.SelectedAssignees, Model.TasksFilterGroup.Assignees, new { @class = "form-control", multiple = "multiple" })
</div>
<div class="form-group">
<label>DropDownListFor</label>
@Html.DropDownListFor(m => m.TasksFilterGroup.SelectedAssignees, Model.TasksFilterGroup.Assignees, new { @class = "form-control", multiple = "multiple" })
</div>
为什么DropDownListFor在提交后会丢失多选而ListBoxFor不会?
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-5.2