Mam problem podczas próby dodania niestandardowego atrybutu danych HTML5 do tabeli renderowanej przy użyciu helpera WebGrid. Chcę tag wygląd tabeli w następujący sposób:Dodawanie łącznika do nazwy atrybutu html przy użyciu pomocnika MVC3 WebGrid
<table data-test="testdata"><!-- Table Content --></table>
Oto przykładowa użyciu widoku silnika Razor: „Nieprawidłowe anonimowego użytkownika typ declarator”
@{
var myUser = new
{
Id = 1,
Name = "Test User"
};
var users = new[] { myUser };
var grid = new WebGrid(users);
}
@grid.GetHtml(htmlAttributes: new { data-test = "testdata"})
Ostatnia linia wytworzy błąd z powodu łącznika w teście danych.
Przy niektórych innych wejściowych znacznikach HtmlHelpers można użyć podkreślnika zamiast łącznika, a po jego wyrenderowaniu zostanie automatycznie zmieniony na myślnik. Tak się nie dzieje w przypadku WebGrid.
Gdybym przechodzą w słowniku dla htmlAttributes:
@grid.GetHtml(htmlAttributes: new Dictionary<string, object> {{ "data-test", "testdata"}})
tabela zostanie wygenerowana jako takie:
<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>
Co robię źle i co należy zrobić, uczynić atrybut jako pożądany?
co się dzieje, gdy wstawisz '@' infront o nazwie atrybutu? jeśli chcesz dodać atrybut klasy, musisz wpisać '@ class', ponieważ' class' jest wyjątkowe, czy dotyczy to również Twojego atrybutu specjalnego? –
Umieszczenie przycisku @ z przodu ma takie samo działanie, jak jego brak. –