0

Request オブジェクトにコレクションとしてアクセスすると、データはどこから取得されますか?

たとえば、私は知っている

Request["someKey"]

どちらかの値を返します

Request.QueryString["someKey"]

また

Request.Form["someKey"]

どちらが設定されているかによります。

他のコレクション (Cookie、セッション) は検索されていますか?

キーと値のペアがいくつかのコレクションに存在するとどうなりますか?

MSDN を調べましたが、あまり情報が見つかりませんでした。

http://msdn.microsoft.com/en-us/library/system.web.httpcontext.request

助けてくれてありがとう!

4

1 に答える 1

1

このアセンブリを逆コンパイルしてソースを調べるとQueryString、 、 、 、 、 の順FormCookies調べてから、アイテムが含まれていない場合はServerVariables最終的に戻りnullます。

public string this[string key]
{
    get
    {
        string item = this.QueryString[key];
        if (item == null)
        {
            item = this.Form[key];
            if (item == null)
            {
                HttpCookie httpCookie = this.Cookies[key];
                if (httpCookie == null)
                {
                    item = this.ServerVariables[key];
                    if (item == null)
                    {
                        return null;
                    }
                    else
                    {
                        return item;
                    }
                }
                else
                {
                    return httpCookie.Value;
                }
            }
            else
            {
                return item;
            }
        }
        else
        {
            return item;
        }
   }
}
于 2012-05-15T22:49:04.637 に答える