ASP.NET MVC / C#:我可以使用Html.ActionLink()创建有效的自定义HTML属性吗?

时间:2010-11-20 22:53:21

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

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

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

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

  

无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问声明匿名类型成员。

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

1 个答案:

答案 0 :(得分:17)

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" }
) %>

下划线将自动转换为连字符