MVC3 ActionLink与HTML 5数据属性的奇怪行为

时间:2012-02-09 09:13:02

标签: asp.net-mvc asp.net-mvc-3 html5

当我使用此辅助方法创建链接时,数据属性在HTML代码中正确显示:

@Html.ActionLink("Test", "Index", null, new { data_something = "123" })

HTML是正确的:

<a data-something="123" href="/">Test</a>

当我使用ActionLink方法的以下重载时(我使用T4MVC脚本,http://mvccontrib.codeplex.com/wikipage?title=T4MVC),数据属性包含下划线而不是短划线:

@Html.ActionLink("Test", MVC.Home.Index(), new { data_something = "123" })

HTML不正确:

<a data_something="123" href="/">Test</a>

这是一个知道错误还是一个功能?我搜索了bugtracker(http://aspnet.codeplex.com/workitem/list/basic),但未能找到相应的问题。

以下重载再次起作用,但我不喜欢一直创建Dictonaries:

@Html.ActionLink("Test", MVC.Home.Index(), new Dictionary<string, object> { 
       { "data-something", "123" }
    })

1 个答案:

答案 0 :(得分:0)

用于数据属性@data_something="123",如

@Html.ActionLink("Test link",
                  MVC.Home.Index(),
                  new {controller="Home"}},new {@data_something="123"})

上面的代码应输出

<a href="/Home/Index/" data-something="123">Test Link></a>