Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
210
Добавлен:
10.05.2015
Размер:
20.41 Mб
Скачать

6.2.4. Строка запроса

Одним из самых серьезных ограничений состояния просмотра является то, что оно работает только на одной странице. Если пользователь переходит на другую страницу, сохраненная в нем информация утрачивается. Существует несколько способов решить эту проблему; то, какой из них будет наиболее подходящим, зависит от имеющихся требований.

Наиболее распространенный подход – передавать информацию с помощью строки запроса в URL-адресе. Именно этот подход часто применяется в поисковых службах. Например, при выполнении поиска на Веб-сайте Google, пользователь будет перенаправлен на новый URL-адрес, включающий указанные им параметры поиска:

http://www.google.ru/search?ie=UTF-8&hl=ru&q=evolution&redir_esc=y&ei=iRKRS5ndN5-inQOH96DTBg

Строка запроса – это та часть URL-адреса, которая находится после вопросительного знака.

Преимуществом строки запроса является то, что она проста и не возлагает никакой нагрузки на сервер. В отличие от межстраничной пересылки данных, строка запроса может запросто переносить одну и ту же информацию со страницы на страницу. Однако она имеет несколько ограничений:

  • она может передавать информацию только в виде простых строк, которые должны содержать допустимые для использования в URL-адресе символы;

  • передаваемая с помощью строки запроса информация визуально доступна для пользователя и любого другого работающего в Интернете человека;

  • инициативный пользователь может решить изменить строку запросу и предоставить новые значения, которые программа никак не ожидает получить и от которых она не имеет защиты;

  • многие браузеры имеют ограничения касательно длины URL-адреса (которая, как правило, не должна превышать 1-2 КБ), поэтому в строку запроса нельзя поместить большое количество информации, и все равно придется выполнять проверку на совместимость с большинством браузеров.

И все-таки добавление информации в строку запроса является полезной технологией. Она особенно подходит для приложений баз данных, в которых пользователю отображается список элементов, соответствующих записям в базе данных (например, это может быть список продуктов): пользователь выбирает элемент, после чего он перенаправляется на другую страницу, содержащую детальную информацию о том элементе, который был им выбран. Один из наиболее простых способов реализовать такую схему – это заставить первую страницу отправлять идентификатор элемента второй странице. Вторая страница затем будет отыскивать этот элемент в базе данных и отображать детальную информацию о нем. Эта технология очень часть применяется на сайтах электронной коммерции, таких как Amazon.com.

6.2.4.1. Использование строки запроса

Чтобы сохранить информацию в строке запроса, ее придется сначала самостоятельно поместить туда. Как правило, это означает, что придется использовать специальный элемент управления HyperLink или оператор Response.Redirect(), подобный тому, который показан ниже:

// Переходим на страницу products/default.aspx.

int categoryID = 10;

Response.Redirect("products/default.aspx?category=" + recordID.ToString());

Отправлять можно и несколько параметров, только тогда их следует разделять с помощью амперсанда (&), как показано ниже:

Response.Redirect("products/default.aspx?category=" + categoryID.ToString()+"&subcategory="+subcategoryId.ToString());

Получающей странице легче работать со строкой запроса. Она может получать значения из коллекции типа словаря QueryString, предоставляемой встроенным объектом Request, как показано ниже:

string ID = Request.QueryString["category"];

Стоит обратить внимание на то, что информация всегда извлекается в виде строки, которая затем может быть преобразована в какой-нибудь другой простой тип данных. Значения в коллекции QueryString индексируются по имени переменной.