ASP.NET MVC: putting custom attributes into option tag in select list
asp.net, asp.net-mvc, drop-down-menu
Solution
DropDownList and derivatives don't support the functionality you're looking for. But you could also simply process the string returned by DropDownList.
<%=
Html.DropDownListFor(x => x.AllTopics,
SelectListHelper.GetSelectListItems(Model.AllTopics),
"Select a Topic",
new { id = "allTopics", @class = "topic-dropdown" })
.Replace("<option", "<option attr=\"value\"")
%>
Problem
I'm using ASP.NET MVC, and am trying to render a select list with the HtmlHelper.DropDownListFor method, like so: ``` <%= Html.DropDownListFor(x => x.AllTopics, SelectListHelper.GetSelectListItems(Model.AllTopics), "Select a Topic", new { id = "allTopics", @class = "topic-dropdown" })%> ``` where SelectListHelper just returns an `IList<SelectListItem>` from whatever collection we're passing in. This works fine for simple things, but I want to be able to add a title attribute to each option tag (not the select list itself). But the DropDownListFor only takes in an `IEnumerable<SelectListItem>`, and the SelectListItem does not have anyplace that I can put in the title attribute. Is there any way to do this without foregoing the DropDownListFor method and writing out the select list and each element by hand?