有没有办法用HTML 5数据属性创建ActionLink?

时间:2010-02-26 02:18:43

标签: asp.net-mvc html5

HTML5允许使用前缀为短语“data-”的自定义属性,该短语在不使用自定义DTD(more info)的情况下通过验证。在Asp.Net MVC中,有没有办法指定一个带有数据属性的ActionLink?

向ActionLink添加属性的典型方法是传入一个匿名对象,并为每个对象提供自定义属性:

new { customattribute="value" }

我想做的是:

new { data-customattribute="value" }

但这不起作用,因为连字符在属性名称中无效。这种限制有什么办法吗?或者我只需要在使用ActionLinks和使用数据属性之间做出选择?

2 个答案:

答案 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>