我已经阅读了很多关于使用MultiSelectList的文章,还没有理解我的DropDownListFor出了什么问题.我有一个ListBoxFor与相同的View,ViewModel和数据工作正常.我想使用DropDownListFor,因为它具有ListBoxFor没有的optionLabel参数.
首次加载View时,DropDownListFor和ListBoxFor都会显示多个选定的项目.
单击"提交"按钮时,所选项目集合将回发到Controller操作,并且视图将刷新,ListBoxFor仍显示两个选定项目,但DropDownListFor仅显示一个选定项目.
控制器动作正在构建MultiSelectList,如下所示:
vm.TasksFilterGroup.Assignees = new MultiSelectList(employees, "Id", "FullName", new string[] { "51b6f06a-e04d-4f98-88ef-cd0cfa8a2757", "51b6f06a-e04d-4f98-88ef-cd0cfa8a2769" });
Run Code Online (Sandbox Code Playgroud)
View代码如下所示:
<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>Run Code Online (Sandbox Code Playgroud)
为什么DropDownListFor会在提交后丢失多个选择,但ListBoxFor不会?