MC, 12:49 piątek, 03.04.2015 r.
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();
Response.Clear();
Response.Write(nowaTresc);
Response.End();
Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!