【问题标题】:ASP.NET MVC/C#: Can I create valid custom HTML attributes using Html.ActionLink()?ASP.NET MVC/C#:我可以使用 Html.ActionLink() 创建有效的自定义 HTML 属性吗?
【发布时间】:2010-11-21 07:02:22
【问题描述】:

我需要在使用 Html.ActionLink() 构建的锚点上放置自定义属性

<%: Html.ActionLink("Delete", "Delete", new { id = Model.ID }, new { data-icon = "ui-icon-trash" })%>

使用正确的“data-”前缀,根据http://www.w3.org/TR/html5/elements.html#attr-data,我从 Visual Studio 收到以下错误。

匿名类型成员声明器无效。必须使用成员分配、简单名称或成员访问来声明匿名类型成员。

由于我不能在匿名类型中使用连字符,添加自定义 HTML 属性的最佳方法是什么?

【问题讨论】:

    标签: asp.net-mvc html custom-attributes


    【解决方案1】:

    data-icon 不是有效的 C# 变量名。你能得到的最接近的是:

    <%: Html.ActionLink(
        "Delete", 
        "Delete", 
        new { id = Model.ID }, 
        new Dictionary<string, string> { { "data-icon",  "ui-icon-trash" } }
    ) %>
    

    当然,ASP.NET MVC 3 已经解决了这个问题,您不再需要编写意大利面条式代码。所以:

    <%: Html.ActionLink(
        "Delete", 
        "Delete", 
        new { id = Model.ID }, 
        new { data_icon, "ui-icon-trash" }
    ) %>
    

    下划线会自动转换成连字符

    【讨论】:

    • 酷,该升级了!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多