AJAX エラー処理では、常にサーバー側とクライアント側の両方に注意する必要があります。それぞれの側で何が起こるかを決める必要があります。
Kapil Khandelwalの答えは素晴らしいですが、クライアント側のみをカバーしています。
この Q/A もお読みになることをお勧めします: ASP.NET MVC Ajax エラー処理
一般的または特定のエラー ハンドラーを定義し、JsonResult またはあらゆる種類の AJAX 呼び出しへの応答を返すメソッドを装飾することは常に役に立ちます。何かのようなもの:
public class JsonErrorHandler : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest() && filterContext.Exception != null)
{
// Log the Error
// Do necessary things...
filterContext.HttpContext.Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError;
filterContext.Result = new JsonResult()
{
//JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new
{
filterContext.Exception.Message,
filterContext.Exception.StackTrace
}
};
filterContext.ExceptionHandled = true;
}
}
}
次に、次のように使用します。
[JsonErrorHandler]
public JsonResult GetMyData(...)
{
.
.
.
}