ASP.NET MVC 可以使用 HTML Helpers 生成 HTML 元素,例如@Html.ActionLink(),@Html.BeginForm()等等。
@Html.ActionLink()
@Html.BeginForm()
我知道我可以通过创建一个匿名对象来指定表单属性并将该对象传递给(在这种情况下为第四个)参数,其中为元素htmlAttributes指定一个:id
htmlAttributes
id
Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"})
但是class属性呢?显然这不起作用:
class
Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"})
因为当我的视图被请求时,它只会引发随机语法错误,因为它在遇到 C# 关键字后会期待其他东西class。
我也试过:
new { _class = "myclass"}
和
new { class_ = "myclass"}
但它们也不起作用,因为下划线被 dashes取代
我知道我也可以手动编写 HTML 元素或将表单包装在 a<div class="myClass">中,但我仍然有兴趣知道它应该如何完成。
<div class="myClass">
为了在 C# 中创建具有保留关键字作为其名称的属性的匿名类型(或任何类型),您可以在属性名称前加上 at 符号@:
@
Html.BeginForm("Foo", "Bar", FormMethod.Post, new { @class = "myclass"})
对于 VB.NET ,此语法将使用点来完成.,在该语言中,它是 所有 匿名类型的默认语法:
.
Html.BeginForm("Foo", "Bar", FormMethod.Post, new with { .class = "myclass" })