ASP.NET MVC:将自定义属性放入选择列表中的选项标记中

amk*_*sel 25 asp.net asp.net-mvc drop-down-menu

我正在使用ASP.NET MVC,并尝试使用HtmlHelper.DropDownListFor方法呈现选择列表,如下所示:

<%= Html.DropDownListFor(x => x.AllTopics, SelectListHelper.GetSelectListItems(Model.AllTopics), "Select a Topic", new { id = "allTopics", @class = "topic-dropdown" })%>
Run Code Online (Sandbox Code Playgroud)

其中SelectListHelper会返回一个IList<SelectListItem>无论从任何收集我们正在传递.这正常工作对简单的事情,但我希望能够到一个title属性添加到每个选项标签(选择列表本身).但DropDownListFor只接受一个IEnumerable<SelectListItem>,而SelectListItem没有任何我可以放在title属性中的地方.

有没有办法做到这一点,没有前面的DropDownListFor方法和手写出选择列表和每个元素?

G-W*_*Wiz 2

查看 MVC 源代码,DropDownListFor使用DropDownList,使用SelectInternal,使用ListItemToOption,包装对 TagBuilder 的调用。您可以修改并包含此源,以便在构建实际选项标记时接受对 TagBuilder 的额外调用。

  • 无需使用Reflector;ASP.NET MVC 的代码是公开的:http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471 (2认同)