3

从 AJAX 查询返回时,有没有办法确定服务器端验证是否添加了任何错误?

我试过了

if ($('#MyForm').valid() == true)
...

在一个OnSuccess函数中,但无论服务器端验证是否失败,它似乎总是正确的。如果生成的刷新的 HTML 确实按预期放入了错误,所以我知道验证工作正常。

我怀疑该valid()方法只是重新运行客户端验证。

4

2 回答 2

2

如果您对服务器运行 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并采取相应措施

于 2012-04-26T12:39:22.417 回答
1

查看本教程中的技术。验证是使用数据注释在服务器端完成的。使用自定义过滤器,验证错误被发送到客户端,在客户端,你revalidate()从 unbotrusive js调用

$.validator.unobtrusive.revalidate(form, validationResult);
于 2012-04-26T12:48:49.900 回答