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:

http://connect.microsoft.com/VisualStudio/feedback/details/767456/webgrid-gethtml-helper-does-not-allow-data-attributes-to-be-set

¿Alguna sugerencia para una solución? ¿O es fijo en MVC4?

Respuestas a la pregunta(1)

Su respuesta a la pregunta