我注意到验证属性仅添加到通过 Html.EditorFor(
) 辅助方法创建且位于 Html.BegingForm()
内的元素中方法,分别创建“Form”标签和属性。
除了手动创建元素和属性之外,还有什么方法可以将所需的验证属性添加到使用辅助方法创建且不在 Html.BegingForm()
方法内的元素中?
我需要在客户端进行验证,并且不想手动创建所述属性或显式编写此行为的脚本,而是利用 MVC 功能,根据模型上的元数据自动添加所述属性,以便与客户端的 jquery-validate 插件。
最佳答案
仅在以下情况下才会发出不引人注目的验证属性:
UnobtrusiveJavaScriptEnabled
标志设置为true
ViewContext.FormContext
不是null
(例如,Html 帮助程序在Html.BeginForm
block 内执行)
因此,您可以在使用 Html 助手之前手动创建 FormContext
并将其分配给 ViewContext.FormContext
:
@{
ViewContext.FormContext = new FormContext();
}
@Html.TextBoxFor(x => x.SomeProperty)
但是您应该注意,使用这种方法您会失去 Html.BeginForm
的嵌套功能,因此如果您想创建一个新的逻辑表单,您需要再次创建 new FormContext()
并自己管理旧上下文。
关于asp.net-mvc-3 - 使用 Html.EditorFor() 方法(不在 Html.BegingForm() 方法内)在 View 中添加验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13336830/