使用带连字符的属性创建元素而不是使用时,是否有更好的语法:
<%= Html.TextBox ("name", value, new Dictionary<string, object> { {"data-foo", "bar"} }) %>
Run Code Online (Sandbox Code Playgroud)
查看HTML 5和WIA ARIA提议标准的HTML规范,似乎HTML属性中的连字符被设计为更常见的某种简单的名称间距.
例如,HTML 5建议使用自定义属性作为前缀,data-WIA ARIA使用aria-所有WIA ARIA属性的前缀.
在ASP.NET MVC中使用HTML帮助程序时,例如<%= Html.TextBox("name", value, new { attribute = attributeValue }) %>将匿名对象转换为字典.
不幸的是,在C#中,名称中不支持连字符,因此唯一的选择是创建字典.其语法非常详细,有没有人看到更好的替代方法或改变ASP.NET MVC的HTML扩展功能的简单方法,而无需重写整个扩展?
例如,data-bind我在声明和Html.TextboxFor帮助时如何创建属性?
简单地做:
@Html.TextBoxFor(model => model.SomeProperty, new { data-bind="something" })
Run Code Online (Sandbox Code Playgroud)
由于带有短划线" - "符号的命名问题,这是不合法的.有没有办法解决这个问题,或者是否无法传递名称包含破折号的html属性?
注意:我试图拍打@(这有助于你想在属性前面传递一个与C#保留字匹配的属性,比如"class"),但这并不能解决问题......