Подтвердить что ты не робот

Есть ли способ создать ActionLink с атрибутами данных HTML 5?

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

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

new { customattribute="value" }

Мне бы хотелось:

new { data-customattribute="value" }

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

4b9b3361

Ответ 1

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

new { data_customattribute="value" }

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

Ответ 2

Да, существует перегрузка для метода 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>