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

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

其中SelectListHelper只是从我们传入的任何集合中返回一个IList<SelectListItem>。这对于简单的东西很好用,但是我希望能够为每个选项标记添加一个title属性(而不是选择列表本身) 。但是DropDownListFor只接受IEnumerable<SelectListItem>,而SelectListItem没有可以放置在title属性中的任何地方。

有什么方法可以执行此操作而无需使用DropDownListFor方法并手动写出选择列表和每个元素?

最佳答案

DropDownList和派生类不支持您要寻找的功能。但是您也可以简单地处理DropDownList返回的字符串。

<%=
  Html.DropDownListFor(x => x.AllTopics,
    SelectListHelper.GetSelectListItems(Model.AllTopics),
    "Select a Topic",
    new { id = "allTopics", @class = "topic-dropdown" })
  .Replace("<option", "<option attr=\"value\"")
%>

关于asp.net - ASP.NET MVC:将自定义属性放入选择列表中的选项标签中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1829566/

10-08 22:15