Добавить пользовательские атрибуты в таблицу, отображаемую с помощью 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:
Любые предложения для обхода? Или это исправлено в MVC4?