Archive for Oktober 2nd, 2007

ASP.NET: Inhalt einer ASPX-Seite abrufen und weiterverwenden

Ja, klar, natürlich: Per Http-Request, WebClient oder ähnlichen Tools geht es immer. Was aber, wenn eine Seite aus der lokalen Webapplikation aufgerufen werden soll – geht das nicht einfacher und ressourcenschonender?

Tatsächlich geht das. Man muss lediglich die Server.Execute()-Methode ein wenig mißbrauchen – und wissen, dass man da durchaus auch eigene Parameter übergeben kann. Dann sieht der Code sehr simpel aus, denn Server.Execute() verfügt über einen Überladung, bei der eine StringWriter-Instanz als Parameter übergeben werden kann. Und in der steht dann der generierte HTML-Quellcode.

Lange Rede, kurzes Beispiel:

// URL definieren
string url = “~/Foo.aspx?parameter=bla”;

// HTML-Code abrufen
StringWriter sw = new StringWriter();
HttpContext.Current.Server.Execute(url, sw);
string html = sw.GetStringBuilder().ToString();

Fertich.