【问题标题】:Using hyphenated HTML attributes in MVC在 MVC 中使用带连字符的 HTML 属性
【发布时间】:2025-12-03 02:10:02
【问题描述】:

考虑以下有效的 razor HTML 帮助代码:

@Html.TextBoxFor(m => m.Name, new { @class = "form-control", placeholder="Select..." })

但是,我正在使用一些库,它们使用连字符的属性,例如:

<select class="form-control select2me" data-placeholder="Select...">

当我尝试这样做时:

@Html.TextBoxFor(m => m.Name, new { @class = "form-control", data-placeholder="Select..." })

我收到此错误:

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

如何在 razor synax 中使用连字符属性?

【问题讨论】:

标签: c# asp.net-mvc razor html-helper jquery-select2


【解决方案1】:

使用下划线 _ - Razor 引擎足够智能,可以将其转换为 data- 属性。

【讨论】:

    【解决方案2】:

    来自This answer

    在数据属性名称中使用下划线,它会神奇地为您处理,将其转换为连字符。它知道您需要连字符而不是下划线,因为下划线在 html 属性中无效。

    <%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>
    

    【讨论】: