如何在ASP.Net Web API中检查请求内容类型?

use*_*065 15 asp.net-web-api

我很难找到在ASP.NET Web Api中检查请求内容类型的方法.有没有办法可以检查请求内容类型是否是控制器级别的application/xml或application/json?

任何帮助,将不胜感激.

Mor*_*yon 6

接受的答案具有误导性,因为它回答了MVC范例而不是@ataravati指出的Web API的问题。以下是如何在Web API控制器操作中访问ContentType的示例。

[HttpPost]
[Route("api/post")]
public void Post()
{
    var contentType = this.Request.Content.Headers.ContentType;
    //other stuff
}
Run Code Online (Sandbox Code Playgroud)


Eri*_*ica 5

每个控制器都有一个上下文:http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.httpcontext.aspx

所以你应该可以打电话HttpContext.Request.ContentType.

  • 如何选择正确的答案?问题是关于asp.net Web API.答案是asp.net MVC. (13认同)
  • 你真的想避免使用HttpContext,因为只有与ASP.NET运行时兼容.它不适用于自托管.每个控制器都有一个可以直接访问的Request属性,因此不需要HttpContext选项. (7认同)