2012-09-28 3 views
13

형식을 반환하는 차이점은 무엇입니까? HttpResponseMessage 돌아MVC 4 웹 API 액션 반환 : 형식 대 HttpResponseMessage

public class MyController : ApiController 
    { 
     public IEnumerable<MyType> Get()... 

:

public class MyController : ApiController 
    { 
     public HttpResponseMessage Get()... 

을 ??

는 MVC 어쨌든 HttpResponseMessage 콘텐츠 객체로 유형을 래핑합니까? 포맷터가 명시 적으로 추가 된 경우와 마찬가지로 페이지의 결과가 동일하게 보입니다.

클라이언트의 차이점은 무엇입니까?

답변

16

차이는 없습니다. 당신이 CLR 형식을 반환하는 경우

, 그것은 어쨌든 HttpResponseMessage로 포장됩니다.

유일한 차이점은 HttpResponseMessage을 반환하면 HTTP로 직접 작업 할 수 있으므로 헤더를 설정할 수 있으므로 MediaTypeFormatters 등의 우회를 허용 할 수 있습니다.

그것은 개인적인 취향 및/또는 액션에서 수행 년대 활동의 모든 문제이다.

+0

고맙습니다. 나는 그것을 알아 냈다. 'HttpResponseMessage'를 리턴하면 응답에 포함될 수있는 모든 종류의 서비스에 더 많은 유연성이 제공됩니다. –

+1

실제로 새로운 도움말 페이지 생성기 기능을 사용하는 경우 약간의 차이가 있습니다. HttpResponseMessage의 경우 리턴 유형을 판별 할 수 없으므로 샘플 데이터를 생성하지 않습니다. 최소한 "ASP.NET Fall 2012 Update BUILD 미리보기"와 일치합니다. – mdonatas

+1

@mdonatas HttpResponseMessage는 도움말 생성기의 힘을 전복시키는 매우 훌륭한 작업을 수행하는 것 같습니다. 거기에 HttpResponseMessage 일반적인에게로 사용하지만, "유형의 안전"이유, 그것은 제거 - http://aspnetwebstack.codeplex.com/discussions/355170 내가 찾을 – Snixtor

관련 문제