Класс HttpResponse инкапсулирует информацию ответа, полученного по протоколу передачи гипертекстовых файлов HTTP, притом информация содержится в операции ASP NET Каркас Framework использует данный класс при формировании ответа клиенту. Формирование ответа включает запись элементов управления сервера для отправки клиенту. Созданный вами код сервера может также использовать метод Write (Запись) объекта Response (Ответ). Использование метода Response: :Write (Ответ' Запись) иллюстрировалось уже несколько раз.
Метод Redirect (Переадресовать)
Класс HttpResponse имеет полезный метод
Redirect (Переадресовать) Благодаря этому
void cmdMakeReservation_Click(
Object *sender, EventArgs *e)
{
HttpUtility *utility = new HttpUtility;
String *query = String:.Concat ( // Строка
"City=", utility->UrlEncode(txtCity->Text)); //
Город
query = String::Format(
// запрос = Строка:: Формат ( "{0}&Hotel={l}",
query, utility->UrlEncode(txtHotel->Text));
query = String::Format(
// запрос = Строка:: Формат ( "{0}&Date={l}",
query, utility->UrlEncode(txtDate-XText));
query = String::Format( // запрос = Строка::
Формат ( "{0}&NumberDays={1}",
query, utility->UrlEncode(txtNumberDays->Text));
Response->Redirect(String::Concat(
// Ответ-> Переадресовать (Строка::
Concat (
"Reservation!.aspx?", query)); // запрос
}
Рис. 10.14. Начальная страница для
бронирования места в гостинице
Метод cmdMakeReservation_Click строит строку запроса. Эта строка присоединяется к унифицированному указателю информационного ресурса (URL) страницы Reservation! .aspx От унифицированного указателя информационного ресурса (URL) ее отделяет символ 9 В качестве разделителя элементов строки запроса используется символ & Для кодирования отдельных элементов используется метод HttpUtility: :UrlEncode Символы "слэш" (в дате) и пробелы, например в названии "San Jose" кодируются отдельно Если щелкнуть на кнопке, будет вызван метод Page_Load класса Reservationl, отображающий страницу, с помощью которой можно забронировать место в гостинице Этот метод считывает название города, название гостиницы, дату и количество дней, которое вы планируете провести в гостинице, а затем отображает полученные данные на возвращаемой Web-странице
void Page_Load(Object *sender, EventArgs *e)
{
Page *p = dynamic_cast<Page *>(sender);
// Страница *р = dynamic_cast <Страница *>
(отправитель);
HttpRequest *request = p->get_Request();
HttpResponse *response = p->get_Response() ;
response->Write("Making reservation for ...");
// ответ-> Запись ("Делаю
резервирование для ... "};
response->Write("<br>"); // ответ->
Запись
String *city = request->Params->get_Item("City");
// Строка *city = запрос-> Params-> get_Item
("Город");
response->Write(String::Concat("City = ", city));
// ответ-> Запись (Строка:: Concat ("Город
= ", город));
response->Write("<br>"); // ответ->
Запись
String *hotel = request->Params->get_Item("Hotel");
// Строка *hotel = запрос-> Params-> get_Item
("Гостиница");
response->Write(String::Concat("Hotel = ", hotel));
// ответ-> Запись (Строка:: Concat
// "Гостиница = ", гостиница));
response->Write("<br>"); // ответ->
Запись
String *strDate = request->Params->get_Item("Date");
// Строка *strDate = запрос-> Params->
get_Item ("Дата");
response->Write(String::Concat("Date = ", strDate));
// ответ-> Запись (Строка:: Concat ("Дата
= ", strDate));
response->Write("<br>"); // ответ->
Запись
String *strDays = // Строка
request->Params->get_Item("NumberDays" ) ;
response->Write(String::Concat(
// ответ-> Запись (Строка:: Concat ( "NumberDays
= ", strDays));
response->Write("<br>"); // ответ->
Запись
}
Строку запроса можно увидеть в
адресной строке броузера На рис. 10.15.
показана выходная информация, выводимая
броузером (На самом деле, наша программа не
бронирует место в гостинице, она всего лишь
выводит переданные ей параметры )
Включите трассировку Вывод
трассировки продемонстрирует идеи, которые
мы обсудили, когда говорили о
программировании запросов и ответов в Web-программах
В частности, стоит изучить коллекцию Query String,
показанную на рис. 10.16.
Рис. 10.15. Вот что выводит броузер после
бронирования места в гостинице
Рис. 10.16. Строка запроса используется для
того, чтобы передать параметры при
переназначении