Gewusst wie: Umleiten von Benutzern auf eine andere Seite

Visual Studio 2010

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

  1. Legen Sie die BufferOutput-Eigenschaft des Response-Objekts auf true fest.

  2. 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("http://www.microsoft.com/gohere/look.htm")
    ElseIf UserLanguage = "Deutsch" Then
        Response.Redirect("http://www.microsoft.com/gohere/look_deu.htm")
    ElseIf UserLanguage = "Español" Then
        Response.Redirect("http://www.microsoft.com/gohere/look_esp.htm")
    End If
    

    Response.BufferOutput = true;
    if (UserLanguage == "English")
    {
        Response.Redirect("http://www.microsoft.com/gohere/look.htm");
    }
    else if (UserLanguage == "Deutsch")
    {
        Response.Redirect("http://www.microsoft.com/gohere/look_deu.htm");
    }
    else if (UserLanguage == "Español")
    {
        Response.Redirect("http://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);
    }
    
Anzeigen: