我正在与史蒂夫·桑德森(Steve Sanderson)的BeginCollectionItem实用程序一起使用,以呈现要在MVC3中编辑的对象的列表,当您从迭代器呈现整个集合时,它的效果很好。当我试图将一个新项添加到集合中并返回表示该对象的html时,我的问题就来了。由于某种原因,我的数据注释未在源于代码的html中呈现。
是否有任何可用的修复程序,或者有什么不同的方法,除非必须手动编写验证才能解决此问题?
谢谢。
最佳答案
注意事项:
除非在用于创建此附加对象的任何方法中存在FormContext
,否则不会呈现数据注释。如果使用局部视图,请在顶部添加以下内容:
--
if (this.ViewContext.FormContext == null)
{
this.ViewContext.FormContext = new FormContext();
}
如果要通过AJAX将项目动态添加到页面,则在添加新项目之后,必须清除DOM中的验证数据,然后重新解析所有验证元素,如下所示:
--
$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");