在创建带有连字符属性的元素时,是否有更好的语法,而不是使用:
<%= Html.TextBox ("name", value, new Dictionary<string, object> { {"data-foo", "bar"} }) %>
看看HTML5和WIA ARIA标准的规范,似乎计划在HTML属性中使用连字符,作为一种简单的名称间隔。
例如,HTML5建议自定义属性以data-
为前缀,而WIA ARIA对所有WIA ARIA属性使用aria-
前缀。
在ASP.NET MVC中使用helpers时,比如<%= Html.TextBox("name", value, new { attribute = attributeValue }) %>
,匿名对象会被转换成字典。
不幸的是,在C#中不支持名称中的连字符,因此唯一的选择是创建一个字典。它的语法非常冗长,有没有人看到过一种更好的替代方法或者一种简单的方法来改变ASP.NET MVC的HTML扩展的功能,而不必重写整个扩展?
发布于 2012-08-23 20:44:34
在数据属性名称中使用下划线,它会神奇地为您处理它,并将其转换为连字符。它知道你需要的是连字符而不是下划线,因为下划线在html属性名称中是无效的。
<%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>
发布于 2011-12-15 05:43:46
ActionLink htmlAttributes提供的答案建议使用下划线而不是连字符。MVC.Net应该在将页面发送到浏览器时发出连字符,而不是下划线。
https://stackoverflow.com/questions/2897733
复制相似问题