Есть ли способ создать ActionLink с атрибутами данных HTML 5? - PullRequest
35 голосов
/ 26 февраля 2010

HTML5 позволяет использовать пользовательские атрибуты с префиксом фразы «data-», которые проходят проверку без использования специального DTD ( больше информации ) В Asp.Net MVC есть ли способ указать ActionLink с атрибутом данных?

Типичным методом добавления атрибутов в ActionLink является передача анонимного объекта с настраиваемым свойством для каждого объекта:

new { customattribute="value" }

Я бы хотел сделать следующее:

new { data-customattribute="value" }

Но это не работает, потому что символ дефиса недопустим в именах свойств. Есть ли способ обойти это ограничение? Или мне просто нужно выбирать между использованием ActionLinks и использованием атрибутов данных?

Ответы [ 2 ]

73 голосов
/ 21 февраля 2011

или вы можете использовать

new { data_customattribute="value" }

и компилятор достаточно умен, чтобы понять, что вы имеете в виду

21 голосов
/ 26 февраля 2010

Да, существует перегрузка для метода ActionLink, который принимает IDictionary<string,object> вместо анонимного объекта.

<%=Html.ActionLink("text", "Index", "Home", null /*routeValues*/, 
    new Dictionary<string, object> { 
       { "data-customattribute", "value" }, 
       { "data-another", "another-value" } 
    })%>

Выходы:

<a data-another="another-value" data-customattribute="value" href="/">text</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...