Damit die serverseitigen Ereignisse abgearbeitet werden
können, wird im Webforms-Programmiermodell bei einem Postback immer wieder die
gleiche Seite selbst aufgerufen. In Webforms gibt es daher in serverseitigen <Form>-Tags
kein Action-Attribut.
Das Action-Attribut
anzugeben hätte keine Wirkung. Auch bei einigen Formen von Hyperlinks wird
(unter Einsatz von Client-Skripten) zunächst die aktuelle Seite erneut
aufgerufen. Daher spricht man bei ASP.NET-Webforms auch von einer Postback-Architektur.

Abbildung 4.5 Seitenübergänge im Webforms-Programmiermodell
Ein tatsächlicher Seitenübergang muss im Programmcode
explizit ausgedrückt werden. Dazu gibt es zwei Optionen:
- Serverseitiger Seitenübergang durch Übergabe der
Programmkontrolle an die nächste .aspx-Seite: Server.Transfer()
- Clientseitiger Seitenübergang durch Umleitung des Clients
(Senden des HTTP-Status-Codes 302 an den Client): Response.Redirect()
Für eine ausführliche Diskussion der Unterschiede sei auf
[DOTNET04] verwiesen.
Cross-Page-Postbacks:
Während in ASP.NET 1.x ein Postback immer auf dieselbe Seite erfolgt,
unterstützt ASP.NET seit Version 2.0 zusätzlich sogenannte Cross-Page-Postbacks. Jedes
Schaltflächen-Steuerelement (<asp:Button>, <asp:ImageButton> und <asp:LinkButton>) darf im Attribut PostBackUrl auf eine beliebige Seite verweisen.
<asp:Button ID=”C_Absenden” Runat=”server” Text=”Absenden”
PostBackUrl=”~/Global/FormularEinsenden.aspx” />
Aus der Sicht des Clients
wird diese Funktion durch eine JavaScript-Funktion (WebForm_DoPostBackWithOptions()) realisiert. Die Zielseite kann über Page.PreviousPage
auf die Daten aus der Ursprungsseite zugreifen.
Inhalt dieses Kapitels:
<< Ereignisbehandlung
Trennung von Layout und
Programmcode >>