HTML5允许使用前缀为短语“data-”的自定义属性,该短语在不使用自定义DTD(more info)的情况下通过验证。在Asp.Net MVC中,有没有办法指定一个带有数据属性的ActionLink?
向ActionLink添加属性的典型方法是传入一个匿名对象,并为每个对象提供自定义属性:
new { customattribute="value" }
我想做的是:
new { data-customattribute="value" }
但这不起作用,因为连字符在属性名称中无效。这种限制有什么办法吗?或者我只需要在使用ActionLinks和使用数据属性之间做出选择?
答案 0 :(得分:73)
或者您可以使用
new { data_customattribute="value" }
并且编译器非常聪明,可以知道你的意思
答案 1 :(得分:21)
是的,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>