我正在与 Steve Sanderson 的 BeginCollectionItem 合作用于渲染要在 MVC3 中编辑的对象列表的实用程序,当您从迭代器渲染整个集合时,它非常有用。当我尝试向集合中添加一个新项目并返回表示该对象的 html 时,我的问题就出现了。由于某种原因,我的数据注释没有在代码中呈现在 html 中。
是否有任何可用的解决方案,或者是否有任何不同的东西,无需手动编写验证,我可以解决此问题?
谢谢。
最佳答案
需要考虑的事情:
- 除非
FormContext
存在于您用于创建此附加对象的任何方法中,否则不会呈现数据注释。如果您使用的是部分 View ,请在顶部添加以下内容:
-
if (this.ViewContext.FormContext == null)
{
this.ViewContext.FormContext = new FormContext();
}
- 如果您通过 AJAX 向页面动态添加项目,那么在添加新项目后,您必须清除 DOM 中的验证数据,并重新解析所有验证元素,如下所示:
-
$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");
关于jquery - Steve Sanderson 的 BeginCollectionItem 不适用于所有情况...潜在的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839453/