Читать «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание» онлайн - страница 632
Эндрю Троелсен
Рассмотрите также описания некоторых методов типа HttpResponse, представленные в табл. 23.7.
Таблица 23.7. Методы типа HttpResponse
Метод | Описание |
---|---|
AddCacheDependency() | Добавляет объект в кэш приложения (см. главу 24) |
Clear() | Удаляет все заголовки и содержимое вывода из буфера потока |
End() | Отправляет все содержимое буфера вывода клиенту, а затем завершает соединение для данного сокета |
Flush() | Отправляет все содержимое буфера вывода клиенту |
Redirect() | Выполняет перенаправление клиента по новому URL |
Write() | Записывает значения в выходной поток HTTP-содержимого |
WriteFile() | Записывает файл непосредственно в выходной поток HTTP-содержимого |
Генерирование HTML-содержимого
Пожалуй, самой известной сферой применения типа HttpResponse является запись содержимого непосредственно в выходной поток HTTP. Метод HttpResponse. Write() позволяет передать HTML-дескрипторы, или вообще любые строковые литералы. Метод HttpResponse.WriteFile() расширяет эти возможности с тем, чтобы вы могли указать имя физического файла на Web-сервере, содержащего данные, направляемые в выходной поток (это оказывается очень удобным в том случае, когда требуется отправить содержимое уже существующего файла *.htm).
Для примера предположим, что вы добавили в свой файл *.aspx еще один тип Button, который реализует обработчик события Click сервера так.
protected void btnHttpResponse_Click(object sender, EventArgs e) {
Response.Write("‹b›Moe имя :‹/b›‹br›");
Response.Write(this.ToString());
Response.Write("‹br›‹br›‹b›Boт Ваш последний запрос:‹/b›‹br›");
Response.WriteFile("MyHTMLPage.htm");
}
Роль этой вспомогательной функции (которая может вызываться некоторым: обработчиком события на стороне сервера) очень проста. Единственным заслуживающим внимания моментам здесь является то, что метод HttpResponse. WriteFile() теперь отправляет содержимое файла *.htm сервера из корневого каталога Web-узла.
Снова подчеркнем, что вы, конечно, можете использовать подход "старой школы", чтобы отображать HTML-дескрипторы и содержимое, используя метод Write(), но этот подход в рамках ASP.NET применяется гораздо реже, чем в рамках классической технологии ASP. Причина здесь (снова) в наличии серверных Web-элементов управления. Скажем, чтобы отобразить блок текстовых данных в браузере, достаточно просто присвоить подходящее значение свойству Text элемента Label.