2016-11-15 10 views
0

ASP.NET MVC 4のHttpException Exceptionクラスとちょっと混乱しています。カスタムエラーコードをスローすることができますが、受け入れる別のコンストラクタもありますメッセージ:私は理解したようASP.NET MVCのHttpExceptionのポイント

HttpException Constructor

は、HTTPだけでステータスコードと「内部サーバーエラー」のようなステータスコードに関連した小さなメッセージを送り返します。この場合、ASP.NET MVCアプリケーションのコンテキストでこのクラスを使用する点は何ですか?今私は、何が起こっているのかをクライアントに伝えるために、特定のステータスコードでHttpExceptionsをスローするコントローラを持っています。これは正しいアプローチですか?例:

/// <summary> 
    /// GET: Returns the data required for the modal to edit the environments. 
    /// </summary> 
    /// <returns></returns> 
    [HttpGet] 
    public ActionResult EditEnvironments() 
    { 
     try 
     { 
      List<Setting> settings = _service.GetAllSettings().ToList(); 
      return PartialView("_EditEnvironments", settings); 
     } 
     catch (Exception ex) 
     { 
      Log.Error(ex.Message, ex); 
      throw new HttpException(500, "Something bad happened.", ex); 
     } 
    } 

ここでは「何か悪いことが起こった」というメッセージが表示されます。クライアントには決して表示されません。解明してくれてありがとう!

+2

Ermでは、HTTPはステータスコードのみを返信するという考えをどこから得ましたか?どのように "OK"の状態になるのでしょうか? – walther

+0

MVCアプリケーションは、HTTPステータスコードを処理する必要はありません。 'HttpException'は、あなたが何らかの理由でWebサービス呼び出しをしたり、' HttpWebRequest'や 'HttpWebResponse'を使うときに一般的に使われます。 – Fourat

+0

私は2番目の段落に書いたように、ステータスコードと小さなメッセージを 'OK'そしてFourat - ありがとう。 – coolboyjules

答えて

0

コメントに基づいて、それはクライアントとサーバーだけのASP.NET MVCアプリでは無意味だと判明しました。 2つのWeb APIがお互いに会話するのに便利です。

return new HttpStatusCodeResult(500,"Something bad happened") 

そして、あなたは「悪い出来事」にアクセスすることができます誰もが興味を持っている場合しかし、あなたはこのようHttpStatusCodeResultを使用することができ、ASP.NET MVCのコンテキストでクライアントに「パス」というメッセージをしたいですこのように、たとえば、jQueryの$のアヤックス()を使用して:

    $.ajax: { 
         url: "@Url.Action("RequestsAdminAjax", "Admin")", 
         type: "POST", 
         data: function(data) { return JSON.stringify(data); }, 
         contentType: "application/json; charset=utf-8", 
         error: function (xhr, textStatus,errorThrown) { 
          debugger; 
          toggleAlert('<strong>Error: </strong>Unable to load data.', 'alert alert-danger'); 
         } 
        }, 

errorThrownを "悪い出来事" が含まれます。

これは誰かを助けてくれることを願っています。

関連する問題