Порядок поиска индексатора HttpRequest - PullRequest
6 голосов
/ 27 октября 2009

Если вы выполняете простой индекс для элементов запроса через запрос [ключ], он просматривается в 4 местах . Какой порядок? Кто-то делает предположение на этой странице в «Cookies, ServerVariables, Form и QueryString». Кто-нибудь знает наверняка? Документация будет бонусом:)

Ответы [ 3 ]

6 голосов
/ 27 октября 2009

публичная строка this [string key] {get; }

Объявление типа: System.Web.HttpRequest Сборка: System.Web, Version = 2.0.0.0

public string this[string key]
{
    get
    {
        string str = this.QueryString[key];
        if (str != null)
        {
            return str;
        }
        str = this.Form[key];
        if (str != null)
        {
            return str;
        }
        HttpCookie cookie = this.Cookies[key];
        if (cookie != null)
        {
            return cookie.Value;
        }
        str = this.ServerVariables[key];
        if (str != null)
        {
            return str;
        }
        return null;
    }
}
1 голос
/ 27 октября 2009

Это с сайта ASP , но оно все еще применяется к ASP.NET:

Все переменные объекта запроса могут быть доступ напрямую по телефону Запрос (переменный) без Название коллекции. В этом случае веб сервер ищет коллекции в следующий заказ:

  1. QueryString
  2. Форма
  3. печенье
  4. ClientCertificate
  5. ServerVariables
1 голос
/ 27 октября 2009

Просто используйте Отражатель , и вы сами это увидите. Порядок: QueryString, Form, Cookies, затем ServerVariables.

...