0
HERE은 ASP.NET 웹 API 2 컨트롤러의 모델 유효성 검사를위한 기본 문서이지만 좋습니다. 하지만 우리가 사용자 지정 메시지을 사용자 지정 HttpStatusCodes으로 보낼 수있는 방법에 대해서는 설명하지 않습니다. 예를 들어ASP.NET 웹 API 2에서 모델 유효성 검사 및 다른 유효성 검사에서 다른 상태 코드 반환
, 나는 '이름'필드가 내 HTTP 응답이
같은 것을보고 싶지 를 제공하지 ' 이름 필수'으로 상태 499 같은 코드와 메시지를 반환 할HTTP/1.1 **499**
Bad Request Content-Type: application/json; charset=utf-8
Date: Tue, 16 Jul 2013 21:02:29 GMT
Content-Length: 331
{
"Message": "The request is invalid. *Please check*.",
"ModelState": {
"product": [
"Required property 'Name' not found in JSON. Path '', line 1, position 17."
],
"product.Name": [
"**Name Required**"
]
}
}
제공된 응답에 표시된대로 사용자 지정 상태 코드와 사용자 지정 메시지를 원합니다.
어떻게하면됩니까?
잘못된 요청에 대한 표준 http 코드를 반환하고 사용자 지정 헤더 또는 응답 본문의 일부로 사용자 지정 코드를 갖습니다. – Nkosi
다른 생각에 동의하지만,'Response.StatusCode'를 설정하고 원하는 데이터로'JsonResult'를 반환 할 수 있습니다. – nurdyguy
이것은 모두가 말하고있는 것처럼 좋은 생각은 아니지만, ** 정말로 **하고 싶다면 ** 몇 가지 해결해야 할 일이 있습니다. (권장하지 않음) 도움이 될 수 있습니다 : 그냥 자신 만의 사용자 지정 클래스 (모델 반환)를 만들고 ModelState.Keys를 'OnActionExecuting' 에 루프로 만들면됩니다. YourObject.Message -> 첫 번째 메시지가됩니다. 의 foreach (actionContext.ModelState.Keys의 VAR 키) { 의 foreach (actionContext.ModelState VAR의 오차 [키] .Errors) { 스트링 메시지 = error.ErrorMessage; -> 사용자가 원하는 것입니다. string fieldName = key; -> 원하는대로 사용하십시오. }} 모드를 사용하여 돌아갑니다. – Prince