Gewusst wie: Umleiten von Benutzern auf eine andere Seite
Aktualisiert: November 2007
Eventuell möchten Sie Benutzer von einer ASP.NET-Webseite zu einer anderen Webseite umleiten. Dies kann z. B. bei einem mehrseitigen Formular der Fall sein.
Für das Umleiten zu einer anderen Seite gibt es z. B. folgende Möglichkeiten:
Konfigurieren einer Seite für das Senden an eine andere Seite: In diesem Szenario klickt ein Benutzer auf eine Schaltfläche, die Sie für das Senden an eine andere Seite konfiguriert haben. Dieses Szenario ist für mehrseitige Formulare nützlich. Es erfordert aber Benutzerinteraktion. Ausführliche Informationen finden Sie unter Seitenübergreifendes Senden in ASP.NET-Webseiten.
Dynamisches Verwenden des Browsers: In diesem Szenario wird ein Befehl an den Browser des Benutzers gesendet, der bewirkt, dass der Browser eine andere Seite empfängt. Dadurch können Sie programmgesteuert zu einer anderen Seite umleiten. Die Umleitung verursacht jedoch eine neue Anforderung (HTTP-GET-Anforderung). Alle Sendedaten von der Quellseite gehen dabei verloren.
Dynamisches Verwenden einer serverseitigen Methode: In diesem Szenario überträgt der Server einfach den Kontext an eine andere Seite. Der Vorteil dabei ist, dass Sie Seitenkontextinformationen gleichzeitig auf mehreren Seiten verwenden können. Der Nachteil ist, dass der Browser über die Übertragung nicht informiert wird, sodass sein Verlauf nicht aktualisiert wird. Daher können unerwartete Ergebnisse auftreten, wenn der Benutzer die Seite aktualisiert. Ausführliche Informationen über die gleichzeitige Verwendung von Seitenkontext während einer Serverübertragung finden Sie unter Gewusst wie: Übergeben von Werten zwischen ASP.NET-Webseiten.
So leiten Sie mit dem Browser einen Benutzer zu einer anderen Seite um
Legen Sie die BufferOutput-Eigenschaft des Response-Objekts auf true fest.
Rufen Sie die Redirect-Methode des Response-Objekts auf, und übergeben Sie ihr den URL der Seite, zu der Sie die Benutzer umleiten möchten.
Das folgende Codebeispiel zeigt die Umleitung einer Seite auf der Grundlage des Inhalts einer lokalen Variablen, UserLanguage, die an anderer Stelle festgelegt ist.
Response.BufferOutput = True If UserLanguage = "English" Then Response.Redirect("https://www.microsoft.com/gohere/look.htm") ElseIf UserLanguage = "Deutsch" Then Response.Redirect("https://www.microsoft.com/gohere/look_deu.htm") ElseIf UserLanguage = "Español" Then Response.Redirect("https://www.microsoft.com/gohere/look_esp.htm") End If
Response.BufferOutput = true; if (UserLanguage == "English") { Response.Redirect("https://www.microsoft.com/gohere/look.htm"); } else if (UserLanguage == "Deutsch") { Response.Redirect("https://www.microsoft.com/gohere/look_deu.htm"); } else if (UserLanguage == "Español") { Response.Redirect("https://www.microsoft.com/gohere/look_esp.htm"); }
So leiten Sie einen Benutzer unter Verwendung der serverseitigen Methode zu einer anderen Seite um
Rufen Sie die Transfer-Methode auf, und übergeben Sie ihr dabei den Namen der Seite, zu der Sie die Benutzer umleiten möchten.
Im folgenden Beispiel wird die Umleitung zu einer anderen Seite dargestellt.
Protected Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Server.Transfer("Page2.aspx", True) End Sub
protected void Button1_Click(object sender, System.EventArgs e) { Server.Transfer("Page2.aspx", true); }
Siehe auch
Aufgaben
Gewusst wie: Übergeben von Werten zwischen ASP.NET-Webseiten