2012-07-10 47 views
13

我无法找到在ASP.NET Web Api中检查请求内容类型的方法。有没有一种方法可以检查请求内容类型,无论它是控制器级别的application/xml还是application/json?如何检查ASP.Net Web API中的请求内容类型?

任何帮助,将不胜感激。

+2

你有没有尝试一个常规:Request.Content.Headers.ContentType? – 2012-07-10 15:51:11

+0

是的,但它始终给我一个空值。我认为这应该给我内容类型,但它不知道该属性的用途是什么? – user1186065 2012-07-10 16:00:24

回答

7

有每个控制器上的背景:http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.httpcontext.aspx

所以,你应该能够调用HttpContext.Request.ContentType

+1

我很愚蠢。我正在检查Request.Content.Headers属性。我应该使用Request.Headers属性。谢谢Erica。 – user1186065 2012-07-10 16:11:38

+6

你真的想避免使用HttpContext,因为那只是为了与ASP.NET运行时兼容。它不会在自我主机中工作。每个控制器都有一个可直接访问的Request属性,因此不需要HttpContext选项。 – 2012-07-10 19:44:24

+0

@DarrelMiller谢谢 - 我没有意识到这一点。 Request属性具有与HttpContext相同的属性(Headers和ContentType),因此它仍然应以相同的方式工作。 – Erica 2012-07-10 20:11:06