Bil*_*ill 2 jquery jquery-plugins asp.net-mvc-3
我有一个巨大的表单,我将其分成视图(部分)和视图模型。
主表单视图包含对以下内容的调用:
@Html.Partial("Educations", @Model)
Run Code Online (Sandbox Code Playgroud)
部分视图通过循环 @Model 来呈现自身,为每个记录生成一个 Div 行(TextBox 不是 TextBoxFor 或任何其他 Html 帮助器)。
发生的情况是,没有为部分视图生成验证数据属性。
但需要注意的是,一旦我动态加载主表单视图,我就会执行以下操作:
(function ($) {
$.fn.updateValidation = function () {
var form = this.find("form")
.removeData("validator")
.removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse(form);
return this;
};
Run Code Online (Sandbox Code Playgroud)
})(jQuery);
此外,部分视图包含一个用于添加更多行的按钮。当我添加其他行时,当我手动注入数据验证时,会验证这些新添加的行。
现在的问题是,加载表单时呈现的行没有任何数据验证属性,因此即使调用上述插件来重新初始化不引人注目的验证,也不会有所帮助或产生任何影响。
谢谢
尝试将表单上下文添加到您的局部视图中:
@model MyViewModel
@{
ViewContext.FormContext = new FormContext();
}
...
@Html.EditorFor(x => x.Foo)
Run Code Online (Sandbox Code Playgroud)
如果 HTML 帮助器没有Html.TextBoxFor在 a 中使用,Html.BeginForm它们将不会发出 HTML5 data-* 属性。它们仅在存在范围内时发出这些属性FormContext。
| 归档时间: |
|
| 查看次数: |
831 次 |
| 最近记录: |