Agregue atributos personalizados a la tabla representada por WebGrid
Estoy usando una MVC3 WebGrid y quiero agregar atributos personalizados de la forma "data-xxx" a la<table>
elemento prestado porWebGrid.GetHtml()
.
Traté de hacer esto de la siguiente manera:
grid.GetHtml(...
htmlAttributes: new { data_xxx = "value" }
);
Sin embargo esto se traduce como:
<table ... data_xxx="value">
en lugar de lo esperado:
<table ... data-xxx="value">
Es decir. a diferencia de otros ayudantes de MVC, no reemplaza el guión bajo en el nombre de la propiedad con un guión.
Después de un poco de espeleología con Reflector parece que:
WebGrid.GetHtml()
llamadasSystem.Web.WebPages.Html.ObjectToDictionary
para convertir el objeto de atributos anónimos a un diccionario. A diferencia del métodoSystem.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes
utilizado por otros ayudantes, esto no reemplaza "_" por "-".
A diferencia de la mayoría de los otros ayudantes de MVC,WebGrid.GetHtml()
No tiene una sobrecarga que lleva unaIDictionary<string, object>
, así que no puedo solucionar el error especificando los atributos de esta manera.
Esto me parece un error y lo he enviado a Connect:
¿Alguna sugerencia para una solución? ¿O es fijo en MVC4?