MVC 4 Web API Action返回:Types vs HttpResponseMessage

T.S*_*.S. 13 asp.net action asp.net-web-api

返回类型有什么区别,例如

    public class MyController : ApiController
    {
        public IEnumerable<MyType> Get()...
Run Code Online (Sandbox Code Playgroud)

VS

返回HttpResponseMessage:

    public class MyController : ApiController
    {
        public HttpResponseMessage Get()...
Run Code Online (Sandbox Code Playgroud)

??

MVC是否将类型包装到HttpResponseMessage内容对象中?除非明确添加格式化程序,否则页面上的结果看起来相同.

客户有什么不同?

Fil*_*p W 16

没有区别.

如果你返回CLR类型,它将被包装HttpResponseMessage.

唯一的区别是,如果你返回,HttpResponseMessage你有机会直接使用HTTP - 所以你可以设置标题,绕过MediaTypeFormatters等等.

这完全取决于个人偏好和/或在您的行动中执行的活动.

  • @mdonatas老问题我知道,但是当使用`HttpResponseMessage`时,通过在你的动作上使用`ResponseType`属性,可以指定在帮助页面中使用的特定响应类型:`[ResponseType(typeof(MyResponseType))]` (2认同)