【发布时间】:2011-10-03 05:06:17
【问题描述】:
Asp.net Mvc3 在输入元素上添加一些自定义属性,例如“data-val-required”,以执行验证。我知道这背后的所有理论,它是如何工作的。
我想知道的是:
当我在“@using (Html.BeginForm())”中创建表单时,它会生成自定义属性,但是当我将表单放在普通的“<form>”标签之间时,它不会创建这些属性。
下面是我创建的一个演示,用于演示我在说什么
Razor 代码,BefingForm() 中的表单
@using (Html.BeginForm()) {
@Html.EditorFor(model => model.EmailAddress)
@Html.ValidationMessageFor(model => model.EmailAddress)
}
生成的 Html 包含如下所示的“data-val-required”属性
<input type="text" value="" data-val-required="The Email Address field is required." data-val-email="my message">
纯 Html 标签内的 Razor 代码表单
<form action="/Account/Register" method="post">
@Html.EditorFor(model => model.EmailAddress)
@Html.ValidationMessageFor(model => model.EmailAddress)
</form>
生成的 Html 不包含如下所示的“data-val-required”属性
<input type="text" value="" gtbfieldid="44">
我的问题是我怎么能要求 MVC 添加这些属性,即使表单放在纯 html 标签中
【问题讨论】:
-
你是否尝试设置 ViewContext 对象的 formcontext 属性