如何将一个类属性添加到由MVC的HTML助手生成的HTML元素?
ASP.NET MVC可以使用HTML Helpers生成HTML元素,例如@Html.ActionLink()
, @Html.BeginForm()
等等。
我知道我可以通过创build一个匿名对象来指定表单属性,并为该元素(在本例中为第四个) htmlAttributes
参数指定一个id
:
Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"})
但是class
属性呢? 显然这不起作用:
Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"})
因为这只是在请求我的视图时抛出随机的语法错误,因为在遇到C#关键字class
之后,它会遇到其他问题。
我也试过:
new { _class = "myclass"}
和
new { class_ = "myclass"}
但他们也没有工作,因为下划线被破折号取代 。
我知道我也可以手动编写HTML元素,或者将表单封装在<div class="myClass">
,但是我仍然有兴趣知道应该如何完成。
为了在C#中创build一个具有保留关键字作为其名称的属性的匿名types(或任何types),您可以在属性名称前添加@
符号:
Html.BeginForm("Foo", "Bar", FormMethod.Post, new { @class = "myclass"})
对于VB.NET来说, 这个语法可以使用点来实现.
,该语言是所有匿名types的默认语法:
Html.BeginForm("Foo", "Bar", FormMethod.Post, new with { .class = "myclass" })
目前在CSS开发中的最佳实践是创build更多的通用select器,其中可以在整个网站中尽可能广泛地应用修饰符。 我会尽量避免为单个页面元素定义单独的样式。
如果<form/>
元素上的CSS类的目的是为了控制表单中元素的样式,可以添加class属性,现有的<fieldset/>
元素默认封装在ASP生成的网页中.NET MVC。 窗体上的CSS类很less需要。
- Web API Put请求生成一个Http 405方法不允许的错误
- Json允许错误
- 如何获得ASP.NET MVC应用程序中的“真正的”HttpContext?
- 是否可以在自定义的AuthorizeAttribute类中使用RedirectToAction()?
- 我可以添加一个类到MVC3中的HTML.ActionLink
- ViewData,ViewBag,Session,TempData是什么时候?
- 404上的静态内容(svg,woff,ttf)在Azure上
- 用于DataAnnotationvalidation属性的Int或Number DataType
- 什么是ASP.NET MVC中强types的View