带有asp.net mvc的连字符的html属性

使用带连字符的属性而不是使用下面的元素创build元素时是否有更好的语法:

<%= Html.TextBox ("name", value, new Dictionary<string, object> { {"data-foo", "bar"} }) %> 

查看HTML 5和WIA ARIA标准的HTML规范,似乎HTML属性中的连字符正在计划作为某种简单的名称空间更常见。

例如,HTML 5build议自定义属性以data-为前缀,WIA ARIA使用所有WIA ARIA属性的aria-前缀。

在ASP.NET MVC中使用HTML助手(如<%= Html.TextBox("name", value, new { attribute = attributeValue }) %> ,匿名对象将转换为字典。

不幸的是在C#中名称中不支持连字符,所以唯一的select是创build一个字典。 其语法非常冗长,有没有人看到一个更好的select或改变ASP.NET MVC的HTML扩展的function,而不必重新写入整个扩展的简单方法?

在数据属性名称中使用下划线,它会神奇地为您处理,将其转换为连字符。 它知道你想要一个连字符而不是下划线,因为下划线在html属性名称中是无效的。

 <%= Html.TextBox("name", value, new { @data_foo = "bar"}) %> 

在ActionLink htmlAttributes提供的答案build议使用下划线而不是连字符。 MVC.Net应该在发送页面到浏览器时发出连字符而不是下划线。