从AJAX查询返回时,有没有办法确定服务器端验证是否添加了任何错误?
我试过了
if ($('#MyForm').valid() == true)
...
在OnSuccess
函数中,但无论服务器端验证是否失败,似乎总是如此。如果生成的刷新HTML确实按预期放入了错误,所以我知道验证工作正常。
我怀疑valid()
方法只是重新运行客户端验证。
答案 0 :(得分:2)
如果对服务器运行ajax调用,则可以简单地编写Json返回。
通常我将我的回复包装在一个包含一个属性的类中,该属性告诉我一切是否正常, 一个包含数据,另一个包含最终错误消息。
public class MyJsonReposnse
{
public bool Valid {get;set;}
public string Error {get;set;}
public IList<MyClass> Data {get;set;}
}
然后从您的控制器返回json,并从jQuery调用的onSuccess
中检查Valid
的值并相应地执行
答案 1 :(得分:1)
查看this tutorial中的技巧。使用数据注释在服务器端完成验证。使用自定义过滤器,验证错误将发送到客户端,在客户端,您从unbotrusive js中调用revalidate()
$.validator.unobtrusive.revalidate(form, validationResult);