考虑以下有效的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中使用带连字符的属性?
答案 0 :(得分:3)
使用下划线_
- Razor引擎非常智能,可将其转换为data-
属性。
答案 1 :(得分:0)
来自This answer:
在数据属性名称中使用下划线,它会为您神奇地处理它,将其转换为连字符。它知道你想要一个连字符而不是下划线,因为下划线在html属性中不起作用。
<%= Html.TextBox("name", value, new { @data_foo = "bar"}) %>