有没有办法预先填充MultiSelectList
所选项?
实施例:
我有一个具有以下ListBoxFor
的视图,该视图会导致页面通过允许过滤Model.Companies
来更新显示的内容。
@Html.ListBoxFor(m => m.SelectedCompanies, new MultiSelectList(Model.Companies, "IdString", "CompanyName")
我想要发生的是更新后,MultiSelectList
将包含在页面更新和刷新之前选择的项目。这是否意味着我需要使用所选内容返回SelectedCompanies
,还是有其他方法?
我在客户端使用javascript library Chosen来获取ListBox的可用性,但我不认为这会影响我正在尝试做的事情。
答案 0 :(得分:1)
有时,JS库可能会干扰您想要的结果。我不能代表Chosen JS库,但检查标记并查看它是如何呈现的。只要它仍然在客户端上有列表框(它必须在某处定义一些输入元素;我猜它会隐藏它并在选择时更新值),然后是的它应该整合好。
但是,当控制器回发时,您必须使用从POST操作返回到控制器的任何值重新填充Model.SelectedCompanies属性。如果从POST操作返回View,则该属性仍应具有所选公司。如果您使用的是RedirectToAction,则必须将选择存储在TempData中。