Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET MVC: putting custom attributes into option tag in select list

Tags:

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?

like image 749
amkessel Avatar asked Dec 01 '09 23:12

amkessel


1 Answers

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\"") %> 
like image 128
G-Wiz Avatar answered Oct 09 '22 02:10

G-Wiz