代码之家  ›  专栏  ›  技术社区  ›  Chris Chilvers

用ASP.NET MVC断字的HTML属性

  •  101
  • Chris Chilvers  · 技术社区  · 14 年前

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

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

    查看建议标准HTML5的HTML规范,以及 WIA ARIA 似乎HTML属性中的连字符被计划作为某种简单的名称间距更为常见。

    例如,HTML5建议自定义属性的前缀为 data- WIA ARIA使用 aria- 所有WIA ARIA属性的前缀。

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

    不幸的是,在C中,名称中不支持连字符,因此唯一的选择是创建字典。其语法非常冗长,是否有人看到过更好的替代方法或一种简单的方法来改变ASP.NET MVC的HTML扩展的功能,而不必重新编写整个扩展?

    2 回复  |  直到 14 年前
        1
  •  185
  •   ED-209    9 年前

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

    <%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>
    
        2
  •  18
  •   Community CDub    7 年前

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