我有一个 Controller 和一个定义的方法...
[HttpPost]
public ActionResult UpdateUser(UserInformation model){
// Instead of throwing exception
throw new InvalidOperationException("Something went wrong");
// I need something like
return ExecutionError("Error Message");
// which should be received as an error to my
// $.ajax at client side...
}
异常问题
- 如果出现设备或网络错误(如 SQL 连接错误),我们必须记录异常情况。
- 这些消息就像用户的验证消息,我们不想记录。
- 抛出异常也会淹没事件查看器。
我需要一些简单的方法来向我的 $.ajax 调用报告一些自定义的 http 状态,以便在客户端产生错误,但我不想抛出错误。
更新
我无法更改客户端脚本,因为它与其他数据源不一致。
到目前为止,HttpStatusCodeResult 应该可以正常工作,但是 IIS 导致了这里的问题。无论我设置了什么错误消息,尝试了所有答案,我仍然只收到默认消息。
最佳答案
这就是 HTTP 状态代码发挥作用的地方。使用 Ajax,您将能够相应地处理它们。
[HttpPost]
public ActionResult UpdateUser(UserInformation model){
if (!UserIsAuthorized())
return new HttpStatusCodeResult(401, "Custom Error Message 1"); // Unauthorized
if (!model.IsValid)
return new HttpStatusCodeResult(400, "Custom Error Message 2"); // Bad Request
// etc.
}
这是 defined status codes 的列表.
关于c# - 如何在不在 MVC Controller 中抛出异常的情况下向 $.ajax 报告错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8702103/