ASP.NET MVC 4,JSON中的ajax和异常细节

ASP.NET MVC 4, ajax and exception details in JSON

我是ASP.NET和MVC的新手。 在我的控制器中,我在无效的用户输入上抛出ArgumentException。 我喜欢客户端以JSON格式获取一些信息的事实。 但我不想发送整个堆栈跟踪,只是发送异常消息(其中包含错误的有用的本地化解释)。

我该怎么做呢?

我已经看到了一些Application_Error()FilterException,但它们似乎都重定向到一个特殊的"错误"视图,而我想留在同一页面上,只是打印出一个用户友好的解释对话框。


1
2
HttpContext.Response.StatusCode = 400
return new ContentResult{Content="My custom error"};

在这种情况下,ajax会将响应视为处于错误状态,您可以指定自定义消息并从response.responseText属性获取它

1
2
3
4
5
6
$.ajax({
 .....
error: function(e){
  alert(e.responseText); // your  error message
}
});


看看这个答案ASP.NET MVC Ajax错误处理,如果你需要StatusCode

1
filterContext.HttpContext.Response.StatusCode = 500;