2016-12-08 1 views
0

ASP.NET MVC 작업 메서드에 ajax 게시물을 만들고 onFailure 함수를 트리거해야하는 Json으로 오류를 반환하려고합니다. 아래의 코드는 내 dev 컴퓨터에서 작동하지만, 테스트 환경에서 시도하자마자 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; 
관련 문제