私はAJAX呼び出しを行い、JSON結果を返す予定のASP.NET MVC 3アプリケーションを持っています。私はエラーを記録するためにELMAHを使用しています。テスト中に予期せぬエラーが発生しました。 ELMAHはエラーをログに記録しましたが、クライアント側のスクリプトは結果が適切なJSONではないため現時点ではありません。コントローラのすべてのエラーを処理して適切なJSON結果を返すと、エラーはELMAHによって記録されません。私はエラーを記録するためにELMAHを特別に呼び出すことができると知っていますが、私はむしろ他の場所でそれをする必要はありません。MVC 3で適切なJSON書式設定のエラーをキャッチするときにELMAHでエラーを記録するにはどうすればいいですか?
誰でもこのシナリオを処理するための「適切な」方法を明確にすることはできますか?
私はこれを '扱う' だので例
try
{
//service.dosomethingwitherror();
return new JsonResult { Data = new { result = true, message = "Success." } };
}
catch (Exception ex)
{
return new JsonResult { Data = new { result = true, message = "Failed." } };
}
ため、ELMAHは記録しません。これを処理しないと、クライアントはJSONを取得しません。
回答ありがとうございます。あなたが言ったように私は考えましたが、JSON結果が必要であり、そのエラーをパッケージ化するための良いmvcの方法があるはずです。私がベターの答えを見つけることができない場合は、あなたが提案したとおりにします。 – Steven
'ElmahErrorAttribute'を継承する' JsonElmahErrorAttribute'クラスを作成し、 'new JsonResult {Data = new {result = true、message =" Failed "でモデルを上書きすることができます。 }} '。 – jrummell