Запрос по запросу Request.QueryString

В чем разница между этими двумя в VBScript:

Request("startDate")

Request.QueryString["startDate"]

А где Request("startDate") задокументировано? Я не вижу этого использования здесь:

http://www.w3schools.com/asp/asp_ref_request.asp

Ответ 1

Официальная документация для объекта Request в ASP classic находится здесь: http://msdn.microsoft.com/en-us/library/ms524948%28VS.90%29.aspx

Процитировать соответствующую часть для этого вопроса:

Доступ ко всем переменным возможен напрямую, вызывая Request (variable) без названия коллекции. В этом случае веб-сервер выполняет поиск коллекции в следующем порядке:

  • QueryString
  • Форма
  • Cookies
  • ClientCertificate
  • ServerVariables

Если переменная с тем же именем существует более чем в одной коллекции, объект Request возвращает первый экземпляр объекта встречи.


РЕДАКТИРОВАТЬ: AnthonyWJones сделал замечательный комментарий к вопросу: Избегайте использования синтаксиса Request("name"). Фактически это упоминается в приведенной выше ссылке документации:

Настоятельно рекомендуется, чтобы при обращении к членам в коллекции будет использовано полное имя. Например, вместо Запрос. ( "AUTH_USER" ) использует Request.ServerVariables ( "AUTH_USER" ). Эта позволяет серверу быстрее находить элемент.

Ответ 2

См. Запрос() vs Request.QueryString()

Из того, что я понимаю, когда вы используете Request on it own, он вернет первый подобранный элемент в коллекции запросов. хорошо объясненный в прилагаемом решении.

Ответ 3

Извините, что сделал этот вопрос, но, учитывая предупреждения против использования Request ( "param" ), мне пришлось добавить мои два цента. В этом конкретном случае есть веская причина использовать Request ( "param" ) вместо Request.QueryString( "param" ): он позволяет вам писать код, который будет принимать параметры как часть строки запроса или при отправке через форму. Я регулярно сталкиваюсь с ситуациями, когда это не только удобно, но и желательно.