2016-07-03 3 views
1

웹 API 컨트롤러의 응답에서 특정 상태 코드를 보내는 것이 조금 혼란 스럽습니다. 클라이언트가 서버에서 데이터를 얻을 수 있다면ASP.NET - 컨트롤러 응답의 상태 코드 설정

public IHttpActionResult GetDeliveryMethods() 
    { 
     if (AuthenticationControl) 
     {     
      return Ok(db.DeliveryMethods); 
     } 
     else 
      return StatusCode(HttpStatusCode.Unauthorized); 
    } 

글쎄, "AuthenticationControl는"일부 절차 검사를 나타냅니다 : 다음은 간단한 제어 방법의 예입니다. 전체 방법은 잘 작동하지만 서버 상태 코드에서 응답을 받으면 항상 200 OK입니다. 응답 및 상태 코드에 대한이 선언이 VS의 주 컨트롤러 템플릿에도있는 이유를 알 수 없습니다.

응답으로 상태 코드 선언을 보내려면 어떻게해야합니까?

+0

이 코드는 항상 200가 중단 점을 배치하고 실제로'반환 상태 코드()'에 도달 것을 확인한 것으로 간주 적이 반환 왜 요구하는지 것 같다? – CodeCaster

+0

예,하지만 "BadRequest :"또는 "NotFound"에 대한 응답을 설정하면 상태 코드가 변경됩니다. 코드의 마지막 줄을 선언 할 때 문제가있을 수 있습니다. 코드 번호는 변경되지 않습니다. – bares697

+0

또한 마지막으로 변경하려고했습니다. 그냥 "Unauthorized()"로 변경했지만 아무런 효과가 없습니다. – bares697

답변

0

현재 반환 유형 대신 HTTPResoponse를 반환하십시오.

이 당신이 HTTP 상태 코드를 설정할 수 있습니다

관련 문제