在MVC中使用连字符的HTML属性

本文关键字:HTML 属性 连字符 MVC | 更新日期: 2023-09-27 18:02:32

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

@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语法中使用连字符属性?

在MVC中使用连字符的HTML属性

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

From This answer:

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

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