史蒂夫桑德森的BeginCollectionItem在所有情况下都不起作用……潜在的解决方案?

我正在使用Steve Sanderson的BeginCollectionItem实用程序来渲染要在MVC3中编辑的对象列表,当您从迭代器渲染整个集合时,它非常有用。 当我尝试将一个新项添加到集合中时,我的问题就出现了,并返回表示该对象的html。 出于某种原因,我的数据注释没有在代码中的html中呈现。

有没有可用的修复程序,或者是否有任何不同的东西,sans不得不亲自编写validation,我可以做什么来解决这个问题?

谢谢。

需要考虑的事项:

  1. 除非用于创建此附加对象的任何方法中存在FormContext ,否则不会呈现数据注释。 如果您使用的是局部视图,请在顶部添加以下内容:

  if (this.ViewContext.FormContext == null) { this.ViewContext.FormContext = new FormContext(); } 
  1. 如果您通过AJAX动态地向页面添加项目,则在添加新项目后,必须清除DOM中的validation数据,并重新解析所有validation元素,如下所示:

  $("form").removeData("validator"); $("form").removeData("unobtrusiveValidation"); $.validator.unobtrusive.parse("form");