MC, 12:49 piątek, 03.04.2015 r.
Ilustracja do artykułu: ASP.NET - Nadpisywanie odpowiedzi HTTP operując na HttpContext.Response

ASP.NET - Nadpisywanie odpowiedzi HTTP operując na HttpContext.Response

Spróbujemy w tym wpisie nadpisać treść odpowiedzi-HTTP w aplikacjach ASP.NET operując na obiekcie HttpContext.Response.

Po co zmieniać odpowiedź-HTTP?

Wyobraźmy sobie sytuację, w której przekazujemy do aplikacji parametr identyfikujący jakąś treść, stanowiącą kompletny, odrębny dokument HTML, na przykład ciało wiadomości email, które chcemy wyświetlić użytkownikowi w przeglądarce. Najwygodniej więc byłoby pobrać proszoną treść z bazy, a następnie zastąpić nią odpowiedź przygotowaną przez .NET. Jeśli przyjrzymy się metodom jakie wystawia obiekt HttpContext.Response (a dokładniej rzecz ujmując - HttpResponse), zauważymy że znajdują się pośród nich dwie, które na pewno okażą się przydatne, a mianowicie metody Clear() i Write(). Jednak tylko one nie wystarczą do osiągnięcia celu, jakim jest nadpisanie odpowiedzi, stąd właśnie powstaje ta notatka.

Jak nadpisać treść odpowiedzi w obiekcie Response?

Kluczowe do rozwiązania problemu okazuje się ustawienie Response.BufferOutput na true. Poniżej podaję przykładowy kod, pozwalający w pełni nadpisać całą treść odpowiedzi HTTP:
Response.BufferOutput = true;
Response.Clear();
Response.Write(nowaTresc);
Response.End();

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: