2010-11-20 2 views
9

У меня есть необходимость поставить пользовательский атрибут на якоре, который я строящийся с помощью Html.ActionLink()ASP.NET MVC/C#: Могу ли я создавать допустимые пользовательские атрибуты HTML с помощью 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?

ответ

17

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" } 
) %> 

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

+0

Прохладный, похоже, что пришло время обновиться! –

Смежные вопросы