我需要在我使用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属性的最佳方法是什么?
答案 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" }
) %>
下划线将自动转换为连字符。