C# HtmlHelpers 如何转义/保留属性名称中的下划线

C# HtmlHelpers How to Escape / Preserve underscores in attribute names

在 Razor 代码中使用 HtmlHelpers 时,像这样:

new { data-something_something = "value" }

下划线 "magically" 转换为连字符。但是,如果我需要我的属性包含下划线和连字符怎么办?如何转义或保留下划线?

您可以传递 IDictinoary<string, string> 代替:

@Html.TextBoxFor(x => x.Prop, new Dictionary<string, string> { { "data-something_something", "value" } })

请注意,像 some_attr 这样的属性名称被认为是无效的 HTML,但在您的情况下 data-* 属性 can确实包含下划线。

MSDN