Asp.net mvc 4 MVC4中的Request.AcceptTypes.Contains在哪里

Asp.net mvc 4 MVC4中的Request.AcceptTypes.Contains在哪里,asp.net-mvc-4,Asp.net Mvc 4,我在互联网上看到很多关于这段代码的参考: if (Request.AcceptTypes.Contains ... 但就我个人而言,我找不到这个方法存在的名称空间 我们使用的是MVC4 WebApi,这是特定于MVC3的吗?。拜托,在我把剩下的头发拔出来之前 编辑: 使用@Styxxyless-answer,这就是我得到的结果(没有AcceptType)。我知道我遗漏了一些明显的东西,但那是什么呢 另外,我在我的项目中有一个对System.Web的引用。它是(。包含)一个来自IEnumera

我在互联网上看到很多关于这段代码的参考:

if (Request.AcceptTypes.Contains ...
但就我个人而言,我找不到这个方法存在的名称空间

我们使用的是MVC4 WebApi,这是特定于MVC3的吗?。拜托,在我把剩下的头发拔出来之前

编辑:

使用@Styxxyless-answer,这就是我得到的结果(没有AcceptType)。我知道我遗漏了一些明显的东西,但那是什么呢

另外,我在我的项目中有一个对System.Web的引用。

它是(
。包含
)一个来自
IEnumerable
的方法,由
数组
实现

编辑:

如果您查看
控制器
(控制器类从中派生)的定义,我们有:

//
// Summary:
//     Gets the System.Web.HttpRequestBase object for the current HTTP request.
//
// Returns:
//     The request object.
public HttpRequestBase Request { get; }
这就是为什么您在网上看到的代码使用的是
Request.AcceptTypes
,而不是
System.Web.HttpRequest
。该属性的名称为
Request
,但它返回一个
HttpRequestBase
。现在,如果
System.Web.HttpRequest
类具有名为
AcceptTypes
的静态属性,则可以通过
System.Web.HttpRequest.AcceptTypes
访问它

对所有的混乱感到抱歉

实施:

public ActionResult Index()
{
    if (Request.AcceptTypes.Contains("image/jpeg"))
    {
        // Do something.
    }

    return View();
}

获取客户端支持的MIME接受类型的字符串数组


Contains()
方法只是基本方法。

对于MVC,代码如下:

Request.AcceptTypes.Contains([MIME type]);
对于Web API,使用以下代码实现功能:

this.Request.Headers.Accept.Contains(new MediaTypeWithQualityHeaderValue([MIME type]))


MIME类型的一个示例是:
“image/jpeg”

谢谢,但我仍然没有看到那里的
AcceptTypes
。我用屏幕截图更新了我的答案。我的问题更多的是关于
AcceptTypes
,而不是
包含的
。Google中关于
请求的第一个结果。AcceptTypes
是…不确定最后一条评论的相关性。这是关于Request.AcceptTypes的文档,这就是你要问的。我希望我不是太激进,但你是否真的在代码中尝试过这个,或者你只是在谷歌搜索时没有检查你的答案?请查看我的答案,以了解我问这个问题的原因。键入
Request.AcceptTypes
,而不是
System.Web.HttpRequest
System.Web.HttpRequest
是实际的类,而不是实际的请求对象,因此您不会在其中看到实例方法/属性。
this.Request.Headers.Accept.Contains(new MediaTypeWithQualityHeaderValue([MIME type]))
this.Request.Headers.GetValues("Accept").Contains([MIME type])