2016-12-08 11 views
0

ASP.NET MVCアクションメソッドにajaxポストを作成していて、onFailure関数をトリガするJsonとしてエラーを返したいとします。以下のコードは私の開発マシンで動作しますが、私たちのテスト環境を試してすぐにonFailure関数は決して命中しません。ステータスコード400がAjaxをトリガーしないOnFailure

エラーが発生したかどうかを確認するために、onSuccess関数のブール値をチェックするソリューションは使用できません。私は、onFailure関数を起動するソリューションが必要です。

public static ActionResult GetModelErrorsInJson(this Controller controller) 
    { 
     controller.Response.StatusCode = (int)HttpStatusCode.BadRequest; 

     var errors = controller.ModelState.Values 
      .SelectMany(x => x.Errors) 
      .Select(x => x.ErrorMessage); 

     var jsonErrors = JsonConvert.SerializeObject(errors); 
     return new JsonResult() 
     { 
      Data = jsonErrors 
     }; 
    } 

答えて

0

明らかにIISは私の応答と壊れているものを乱していました。レスポンスに次のプロパティを設定して修正しました。

controller.Response.TrySkipIisCustomErrors = true; 
関連する問題