estoy usando ASP.NET MVC, y estoy tratando de hacer una lista de selección con el método HtmlHelper.DropDownListFor, así:ASP.NET MVC: poner atributos personalizados en la etiqueta de opción en la lista de selección
<%= Html.DropDownListFor(x => x.AllTopics, SelectListHelper.GetSelectListItems(Model.AllTopics), "Select a Topic", new { id = "allTopics", @class = "topic-dropdown" })%>
donde SelectListHelper simplemente devuelve un IList<SelectListItem>
de cualquier colección que estamos pasando. Esto funciona muy bien para las cosas simples, pero yo quiero ser capaz de añadir un atributo title para cada opción etiqueta (no la seleccione propia lista) Pero DropDownListFor solo admite IEnumerable<SelectListItem>
, y SelectListItem no tiene ningún lugar que pueda poner en el atributo de título.
¿Hay alguna manera de hacer esto sin renunciar al método DropDownListFor y escribir la lista de selección y cada elemento a mano?
Sí, esto es lo que terminé haciendo ... básicamente arrancando un montón de código de .NET Reflector. Parece que funciona, pero me pone un poco nervioso debido a todas las otras porquerías que parecen estar haciendo estos métodos, que pueden ser un poco difíciles de descifrar. Supongo que lo arreglaremos como va. – amkessel
No es necesario usar Reflector; el código para ASP.NET MVC está a disposición del público: http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24471 –