首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用asp.net mvc连接的html属性

使用asp.net mvc连接的html属性
EN

Stack Overflow用户
提问于 2010-05-24 22:34:01
回答 2查看 20.8K关注 0票数 115

在创建带有连字符属性的元素时,是否有更好的语法,而不是使用:

代码语言:javascript
复制
<%= 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扩展的功能,而不必重写整个扩展?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-23 20:44:34

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

代码语言:javascript
复制
<%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>
票数 208
EN

Stack Overflow用户

发布于 2011-12-15 05:43:46

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

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2897733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档