2016-12-08 98 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;