У меня возникла проблема при попытке добавить настраиваемый атрибут данных HTML5 в таблицу, которая отображается с использованием Помощник WebGrid. Я хочу, чтобы тег таблицы выглядел следующим образом:
<table data-test="testdata"><!-- Table Content --></table>
Вот пример представления с использованием механизма представления Razor:
@{
var myUser = new
{
Id = 1,
Name = "Test User"
};
var users = new[] { myUser };
var grid = new WebGrid(users);
}
@grid.GetHtml(htmlAttributes: new { data-test = "testdata"})
Последняя строка создаст «Недопустимый декларатор члена анонимного типа». ошибка из-за дефиса в data-test.
С некоторыми другими входными HtmlHelpers вы можете использовать подчеркивание вместо дефиса, и он будет автоматически заменен дефисом при отображении. Этого не происходит с WebGrid.
Если я передаю словарь для htmlAttributes:
@grid.GetHtml(htmlAttributes: new Dictionary<string, object> {{ "data-test", "testdata"}})
таблица будет отображаться как таковая:
<table Comparer="System.Collections.Generic.GenericEqualityComparer`1[System.String]" Count="1" Keys="System.Collections.Generic.Dictionary`2+KeyCollection[System.String,System.Object]" Values="System.Collections.Generic.Dictionary`2+ValueCollection[System.String,System.Object]"><!-- Table Content --></table>
Что я делаю не так и что мне нужно сделать для рендеринга атрибута по желанию?