Добавить пользовательские атрибуты в таблицу, отображаемую с помощью WebGrid

Я использую MVC3 WebGrid и хочу добавить пользовательские атрибуты формы "data-xxx" в<table> элемент отображаетсяWebGrid.GetHtml().

Я попытался сделать это следующим образом:

grid.GetHtml(...
    htmlAttributes: new { data_xxx = "value" }
);

Однако это выглядит как:

<table ... data_xxx="value">

вместо ожидаемого:

<table ... data-xxx="value">

То есть в отличие от других помощников MVC, он не заменяет подчеркивание в имени свойства дефисом.

После небольшого разговора с Reflector кажется, что:

WebGrid.GetHtml() звонкиSystem.Web.WebPages.Html.ObjectToDictionary преобразовать объект анонимных атрибутов в словарь. В отличие от методаSystem.Web.Mvc.HtmlHelper.AnonymousObjectToHtmlAttributes используется другими помощниками, это не заменяет "_" на "-".

В отличие от большинства других помощников MVC,WebGrid.GetHtml() не имеет перегрузки, которая занимаетIDictionary<string, object>, поэтому я не могу обойти ошибку, указав атрибуты таким образом.

Для меня это похоже на ошибку, и я отправил ее в Connect:

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

Любые предложения для обхода? Или это исправлено в MVC4?

Ответы на вопрос(1)

Ваш ответ на вопрос