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

Luc*_*Sam 9 asp.net-mvc html5 custom-attributes

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

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

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

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

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

Dar*_*rov 17

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

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

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

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

下划线将被自动转换为一个连字符.