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