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

发布于 2024-10-03 17:34:54 字数 498 浏览 3 评论 0原文

我需要在使用 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 属性的最佳方法是什么?

I have the 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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千仐 2024-10-10 17:34:54

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

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文