2012-03-06 6 views
2

jQueryを使用してクライアントサイドですべてのサーバーサイドエラーを処理したいと思います。この目的のためにこのような私のMVC3アプリケーションのattrbuteを扱うaxception作成:ASP.NET MVC3でajaxエラーを発生させるには

public class JsonErrorHandlerAttribute : HandleErrorAttribute 
{ 
    public override void OnException(ExceptionContext filterContext) 
    { 
     filterContext.ExceptionHandled = true; 
     JavaScriptSerializer jsSerializer = new JavaScriptSerializer(); 
     string result = jsSerializer.Serialize(new { error = filterContext.Exception.Message }); 
     filterContext.HttpContext.Response.Write(result); 
    } 
} 

をしかし、このアプローチではそれだけで200 OKの結果と通常のJSONレスポンスを返します。クライアント側でそれを解析して、エラーがあるかどうかを判断する必要はありません。だから私の質問は、ajaxエラーをスローする最良の方法は何ですか?

答えて

4

これは、あなたがjQueryのAJAXを使用している場合、そこにあなたが反応することができ、エラーイベントが発生します

HttpContext.Response.StatusCode = 500; 

あなたの関数にこれを追加します。

+1

必ず正しいコードを使用してください。ブランケットとして「何か悪いことが起こった」という返答は悪い習慣です。ステータスコードのリストは次のとおりです。http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html正しい状況で正しいものを選択することは重要です。 – Fourth

+0

シンプルで清潔感 - ありがとう! – koss

+0

@Fourth:Thx、そうです、それは考慮すべきです!しかし、それを簡単に保つために、私は思います。 – Marc

関連する問題