Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 确定MVC3服务器验证是否成功_Ajax_Asp.net Mvc 3_Jquery - Fatal编程技术网

Ajax 确定MVC3服务器验证是否成功

Ajax 确定MVC3服务器验证是否成功,ajax,asp.net-mvc-3,jquery,Ajax,Asp.net Mvc 3,Jquery,从AJAX查询返回时,是否有方法确定服务器端验证是否添加了任何错误 我试过了 if ($('#MyForm').valid() == true) ... 在OnSuccess函数中,但无论服务器端验证是否失败,它似乎总是正确的。刷新后的HTML if生成确实如预期的那样输入了错误,因此我知道验证工作正常 我怀疑valid() 通常,我将我的响应封装在一个类中,该类包含一个属性,该属性告诉我是否一切正常, 一个包含数据,另一个包含最终错误消息 public class MyJsonReposns

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

我试过了

if ($('#MyForm').valid() == true)
...
OnSuccess
函数中,但无论服务器端验证是否失败,它似乎总是正确的。刷新后的HTML if生成确实如预期的那样输入了错误,因此我知道验证工作正常


我怀疑
valid()

通常,我将我的响应封装在一个类中,该类包含一个属性,该属性告诉我是否一切正常, 一个包含数据,另一个包含最终错误消息

public class MyJsonReposnse
{
   public bool Valid {get;set;}
   public string Error {get;set;}
   public IList<MyClass> Data {get;set;}
}
公共类myjsonreposse
{
公共布尔有效{get;set;}
公共字符串错误{get;set;}
公共IList数据{get;set;}
}

然后从控制器返回json,从jQuery调用的
onSuccess
,检查
Valid
的值,并相应地执行操作。验证是使用数据注释在服务器端完成的。使用自定义过滤器,验证错误被发送到客户端,在客户端,您可以从非侵入式js调用
revalidate()

$.validator.unobtrusive.revalidate(form, validationResult);

当验证失败时,为什么不在服务器端抛出一个异常呢?这样,您就可以在OneError客户端事件中轻松捕获它。