无法在jquery ajaxpost上使用mvc 3进行不显眼的validation

我在使用MVC3进行validation方面遇到了很多麻烦。 我直接加载页面时工作正常,但是当我使用jquery AJAX POST时它不会validation:

这个表单使用$('#modal-dialog').load('/DartsMVC/Restaurant/Edit/13') ,这是呈现的HTML:

 
Restaurant

拦截表单/提交使用AJAX POST。 post完成后,模式对话框会自动弹出并关闭。 我想在发送post之前validation表单:

 // force change the submit data to an ajax POST (usually 'save', 'delete' button) $('#modal-dialog').delegate('form', 'submit', function (e) { e.preventDefault(); var form = $(this); form.validate(); // does nothing if (form.valid()) { $.ajax({ url: form.attr('action'), type: "POST", data: form.serialize(), success: function (data) { $('#modal-dialog').dialog('close'); }, error: function (jqXhr, textStatus, errorThrown) { alert("Error '" + jqXhr.status + "' (textStatus: '" + textStatus + "', errorThrown: '" + errorThrown + "')"); } }); } }); 

我这样做了吗? .valid()始终返回true。

我的web.config有:

      

我的页面来源有:

        

我的模型有:

  [Required] public string Name { get; set; } 

经过更多的研究,我认为它可能与动态控件有关:

  • 由于存在data-val属性,因此它不是表单范围问题
  • 我会尝试调用$ .validator.unobtrusive.parse(’#formid’)。 如果这样做不起作用,我将使用这个最后的手段:
  • http://xhalent.wordpress.com/2011/01/24/applying-unobtrusive-validation-to-dynamic-content/

解决了

调用$ .validator.unobtrusive.parse($(’form’))就可以了。 我想validation器需要为动态内容重新创建