2

インターネット上でこのコードへの参照がたくさん見られます。

if (Request.AcceptTypes.Contains ...

しかし、私の人生では、このメソッドが存在する名前空間を見つけることができません。

MVC4 WebApi を使用していますが、これは MVC3 固有ですか? 残りの髪を抜く前にお願いします。

編集:

@Styxxylessの回答を使用すると、これが得られます(AcceptTypesはありません)。明らかな何かが欠けていることは知っていますが、それは何ですか?

ここに画像の説明を入力

また、私のプロジェクトでは System.Web への参照があります。

4

3 に答える 3

2

MVCの場合、コードは次のとおりです。

Request.AcceptTypes.Contains([MIME type]);

Web APIの場合、機能は次のコードを使用して実現されます。

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

また

this.Request.Headers.GetValues("Accept").Contains([MIME type])

MIMEタイプの例は次のとおりです。"image/jpeg"

于 2012-09-25T20:58:45.787 に答える
2

System.Web.HttpRequest.AcceptTypes

public string[] AcceptTypes { get; }

クライアントがサポートする MIME 受け入れタイプの文字列配列を取得します。

そして、そのContains()方法はあくまで基本的なIEnumerable.Contains方法です。

于 2012-09-24T21:53:57.347 に答える
1

を実装する( .Contains) のメソッドです。IEnumerableArray

http://msdn.microsoft.com/en-us/library/bb352880(v=vs.100).aspx

編集:

Controller(コントローラークラスの派生元)の定義を見ると、次のようになります。

//
// 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が、 を返しますHttpRequestBaseSystem.Web.HttpRequestクラスに という名前の静的プロパティがある場合、AcceptTypes経由でアクセスできますSystem.Web.HttpRequest.AcceptTypes

混乱させてごめんなさい!

実装:

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

    return View();
}
于 2012-09-24T21:52:58.427 に答える