如果你查看我之前的问题,你可能已经注意到我没有得到SelectList和Html.DropDown()。我觉得这很吸引人,我似乎是唯一一个这样的人。所以也许我应该尝试改变我的心态,或者也许有些事我不知道会清除这一切。我真的很喜欢整个MVC框架,但SelectList并不想让我满意。所以这是我的清单:
的SelectList
Html.DropDownList()
在ppl建议我写自己之前:
由于这将与MVC产品一起提供,我宁愿获得对基本控件的官方支持,然后自己动手并承担它带来的所有麻烦。
答案 0 :(得分:3)
我感觉到你的痛苦。原谅无耻的插件,但你可能会看到MvcFluentHtml。您仍然可以使用SelectList和MultiSelectList,但您还有其他几个选择。用粘合剂可以正常工作。
答案 1 :(得分:2)
同样地,我有一些关于HTML Helpers的bugbears但是没有比SelectList更多的bugbears。要添加到投诉列表中,我想知道为什么SelectList不接受(或无法处理)通用IEnumerable<T>
。同样,您可以将自己的实现集中在一起,但IEnumerable<T>
将启用相当多的便捷功能(例如直接支持LINQ / Entity Framework),我觉得应该提供。
MvcFluentHtml(现在是MvcContrib的一部分)虽然看起来很不错。
答案 2 :(得分:2)
我理解你的大部分问题,奇怪的是,我还没有遇到任何问题!但是我可能正在使用MVC开发人员的意图,并且不需要在盒子外冒险太多!
但希望能帮助你一点,这里有一个例子,说明我如何使用SelectList和我设置的属性:
<%= Html.DropDownList("Module.Status", new SelectList(ViewData.Model.Statuses, "ID", "Name", ((int)ViewData.Model.Module.Status)), new {tabindex = 1, title = "Status"})
%&gt;
并且在我的控制器操作中我使用了ModelBinder(你说这不起作用?不确定你遇到了什么问题,我的情况很好。)
public ActionResult Save(int? id, [Bind(Prefix = "Module",
Include = "Name,Description,Status")] Module module)
然后可以通过“module.Status
”来访问状态。