【问题标题】:How do I return errors from my asp.net mvc controller when doing a jquery ajax post?执行 jquery ajax 发布时如何从我的 asp.net mvc 控制器返回错误?
【发布时间】:2009-03-28 11:35:04
【问题描述】:
我正在用 ASP.NET MVC 创建一个网站,但偶然发现了一些我真的无法弄清楚的东西。
我有一个用户个人资料页面,允许用户更改他的密码。在服务器端,我想在允许更改之前验证用户是否输入了正确的“当前”密码。
当密码不正确时,返回我的视图的最佳方式是什么?我尝试使用 ModelState.AddModelError 然后返回 Json(View()) 但我在返回给浏览器的 JSON 对象中的任何地方都看不到错误消息。
在客户端使用 jquery 的最佳方法是什么?
/杰斯珀
【问题讨论】:
标签:
jquery
asp.net-mvc
validation
【解决方案1】:
我会创建类
JsonOK : JsonResult { ... }
JsonError : JsonResult { ... }
并将这 2 个用于 OK 和 Error 响应。
try
{
...
}
catch (Exception ex)
{
return JsonError(ex.Message);
// or output your own message
// or pass into it ModelState with your errors
}
【解决方案2】:
ModelState 不会自动对返回的Json 执行任何操作。您应该使用要返回给客户端的数据手动填充模型对象。
或者,如果你想向客户端报告错误,你可以在控制器动作方法中抛出异常并在jQuery中处理。