我正在使用Steve Sanderson的
BeginCollectionItem实用程序来渲染要在MVC3中编辑的对象列表,当你从迭代器渲染整个集合时它很有用.当我尝试将一个新项添加到集合中时,我的问题就出现了,并返回表示该对象的html.出于某种原因,我的数据注释没有在代码中的html中呈现.
有没有可用的修复程序,或者是否有任何不同的东西,sans不得不亲自编写验证,我可以做什么来解决这个问题?
谢谢.
解决方法
需要考虑的事项:
>除非用于创建此附加对象的任何方法中存在FormContext,否则不会呈现数据注释.如果您使用的是局部视图,请在顶部添加以下内容:
–
if (this.ViewContext.FormContext == null) { this.ViewContext.FormContext = new FormContext(); }
>如果您通过AJAX动态地向页面添加项目,则在添加新项目后,必须清除DOM中的验证数据,并重新解析所有验证元素,如下所示:
–
$("form").removeData("validator"); $("form").removeData("unobtrusiveValidation"); $.validator.unobtrusive.parse("form");