【发布时间】:2013-02-06 19:28:35
【问题描述】:
我有一个场景,我想从复选框列表中选择 3 个项目。这很好用,但如果复选框列表变长,页面看起来很笨拙。所以我想将其更改为 3 个下拉列表。所以页面要小很多,但没有一个下拉列表支持所选值。
所以我尝试了这样的代码
@Html.DropDownListFor(model => model.CheckedLarcenyTypes, new SelectList(Model.LarcenyTypes, "Key", "Value", Model.CheckedLarcenyTypes.Length > 0 ? Model.CheckedLarcenyTypes[0] : null as Int32?), String.Empty, new { id = "Larceny1" })
@Html.DropDownListFor(model => model.CheckedLarcenyTypes, new SelectList(Model.LarcenyTypes, "Key", "Value", Model.CheckedLarcenyTypes.Length > 1 ? Model.CheckedLarcenyTypes[1] : null as Int32?), String.Empty, new { id = "Larceny2" })
@Html.DropDownListFor(model => model.CheckedLarcenyTypes, new SelectList(Model.LarcenyTypes, "Key", "Value", Model.CheckedLarcenyTypes.Length > 2 ? Model.CheckedLarcenyTypes[2] : null as Int32?), String.Empty, new { id = "Larceny3" })
现在下拉菜单已正确创建,并且正确的值被绑定,在 POST 上,我看到值在视图模型中被发送回。
我只是无法让选择值显示在下拉列表中。重新加载页面后,下拉菜单仍然是空白的。
我在这里做错了什么?这甚至可能吗?
【问题讨论】:
-
您好 Fran,如果列表很长,为什么不考虑另一种解决方案,例如实现一个 jquery 选择列表插件,例如 loopj.com/jquery-tokeninput 中的一个插件,看看它是否适合您的场景?与复选框列表不同,这将显示一个下拉列表,您可以从中选择条目。您选择的每个条目都将列在文本区域中
标签: asp.net-mvc razor model-binding html.dropdownlistfor