开发者

ASP.NET MVC/C#: Can I create valid custom HTML attributes using Html.ActionLink()?

开发者 https://www.devze.com 2023-01-26 07:05 出处:网络
I have the开发者_StackOverflow中文版 need to put a custom attribute on an anchor which I am constructing using Html.ActionLink()

I have the开发者_StackOverflow中文版 need to put a custom attribute on an anchor which I am constructing using Html.ActionLink()

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

Using the proper "data-" prefix, as per http://www.w3.org/TR/html5/elements.html#attr-data, I get the following error from Visual Studio.

Invalid anonymous type member declarator. Anonymous type members must be declared with a member assignment, simple name or member access.

Since I can't use a hyphen in the anonymous type, what would be the best way to go about adding my custom HTML attribute?


data-icon is not a valid C# variable name. The closest you could get is this:

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

Of course this issue has been addressed in ASP.NET MVC 3 and you no longer need to write spaghetti code. So:

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

And the underscore will be automatically converted to a hyphen.

0

精彩评论

暂无评论...
验证码 换一张
取 消