私はこのようになりますアクションによってスローされた例外をログに記録するフィルタを使用しています:ASP.Net MVC - JSONアクション(JSONエラー情報を返す)で例外を処理する方法と、フィルタの例外を公開する方法
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.Exception != null)
{
//logger.Error(xxx);
}
base.OnActionExecuted(filterContext);
}
は、今私は例外情報をJSONの結果を返すためにすべての私のJSONアクションを処理したいと思います。これにより、Ajax呼び出しは、エラー・ページ・ソースを受け取るのではなく、サーバー上にエラーがあるかどうかを判断することができます。これはAjaxでは役に立たないものです。
public ActionResult JsonExceptionHandler(Func<object> action)
{
try
{
var res = action();
return res == null ? JsonSuccess() : JsonSuccess(res);
}
catch(Exception exc)
{
return JsonFailure(new {errorMessage = exc.Message});
}
}
これは素晴らしい作品が、実際にスローされる例外がないので、明らかにキャッチ()文では、例外処理からのすべてのフィルタを防ぐ:私は私のAppControllerBaseでJSONアクションのため、このメソッドを実装しました。フィルタ(filterContext.Exception)に例外を残す方法はありますか?
あなたJsonFailure && JsonSuccessを公開してください – ari