jquery - Steve Sanderson 的 BeginCollectionItem 不适用于所有情况...潜在的解决方案?

标签 jquery asp.net asp.net-mvc-3 unobtrusive-validation

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

是否有任何可用的解决方案,或者是否有任何不同的东西,无需手动编写验证,我可以解决此问题?

谢谢。

最佳答案

需要考虑的事情:

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

-

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

-

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

关于jquery - Steve Sanderson 的 BeginCollectionItem 不适用于所有情况...潜在的解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7839453/

相关文章:

asp.net - 如何将 JavaScript 与 ASP.NET 下拉列表控件一起使用?

javascript - 如果选择每日(复选框),请取消选择所有其他复选框

c# - 使链接从 window.open 弹出窗口中消失

javascript - ASP.NET VB WebService 请求出现 AJAX 500 错误

c# - 如何像 c# 中的 html 解析器一样解析 asp.net mvc razor view (cshtml)

javascript - jquery 模式弹出窗口中的按键

javascript - 如何在 Javascript 中向 .submit() 添加回调函数?

javascript - innerHTML 不适用于 span 标签

c# - 在 Debug模式下发布了一个 asp.net Web 应用程序?

asp.net-mvc-3 - Entity Framework 检测到有冲突的更改。尝试插入多个具有相同键的实体时可能会发生这种情况