ASP.NET MVC / C #: можно ли создавать допустимые пользовательские атрибуты HTML с помощью Html.ActionLink ()? - PullRequest
9 голосов
/ 21 ноября 2010

У меня есть потребность поместить пользовательский атрибут на якорь, который я создаю, используя Html.ActionLink ()

<%: Html.ActionLink("Delete", "Delete", new { id = Model.ID }, new { data-icon = "ui-icon-trash" })%>

Используя правильный префикс «data-» в соответствии с http://www.w3.org/TR/html5/elements.html#attr-data,, я получаю следующую ошибку из Visual Studio.

Неверный анонимный член объявления типа. Члены анонимного типа должны быть объявлены с назначением члена, простым именем или доступом участника.

Поскольку я не могу использовать дефис в анонимном типе, как лучше всего добавить свой собственный атрибут HTML?

1 Ответ

17 голосов
/ 21 ноября 2010

data-icon не является допустимым именем переменной C #.Самое близкое, что вы можете получить, это:

<%: Html.ActionLink(
    "Delete", 
    "Delete", 
    new { id = Model.ID }, 
    new Dictionary<string, string> { { "data-icon",  "ui-icon-trash" } }
) %>

Конечно, эта проблема была решена в ASP.NET MVC 3 , и вам больше не нужно писать код спагетти.Итак:

<%: Html.ActionLink(
    "Delete", 
    "Delete", 
    new { id = Model.ID }, 
    new { data_icon, "ui-icon-trash" }
) %>

И подчеркивание будет автоматически преобразовано в дефис .

...