Umleiten von Benutzern auf eine andere Seite
Aktualisiert: November 2007
In einer Webanwendung ist das Umleiten von Benutzern auf eine andere Seite eine häufig vorkommende Aufgabe. ASP.NET bietet folgende Möglichkeiten, Webseiten mit einer Umleitung auszustatten:
Verwenden von Hyperlinks auf Seiten.
Konfigurieren des seitenübergreifenden Sendens von Daten. Damit können Sie eine alternative Zielseite für die Übermittlung der aktuellen Seite angeben.
Programmgesteuertes Umleiten, indem der Browser gezwungen wird, eine andere Seite anzufordern.
Programmgesteuertes Umleiten, indem die Steuerung an eine andere Seite in derselben Webanwendung übertragen wird.
Jede dieser Optionen wird im Folgenden erläutert. Eine Tabelle am Ende des Themas fasst die Optionen zusammen und bietet Richtlinien, damit Sie entscheiden können, wann Sie welche Option verwenden sollten.
Hyperlinks
Sie können mit einem HTML-Ankertag (<a>) auf einer ASP.NET-Webseite statische Hyperlinks erstellen oder den Hyperlinktext und die Ziel-URL der Hyperlinks per Programm mithilfe des HyperLink-Steuerelements steuern. In diesem Fall klickt der Benutzer explizit auf einen Hyperlink, woraufhin der Browser zur Zielseite wechselt. Die Zielseite wird mit dem HTTP-GET-Befehl aufgerufen. Aus diesem Grund werden nur dann Informationen bezüglich der Ausgangsseite an die Zielseite übergeben, wenn Sie im URL der Zielseite eine Abfragezeichenfolge angeben. Wenn die Ausgangsseite und die Zielseite zur gleichen Webanwendung gehören, können die beiden Seiten mithilfe des Sitzungszustands oder des Anwendungszustands Informationen austauschen.
Seitenübergreifendes Senden von Daten
Standardmäßig versenden die Schaltflächen einer ASP.NET-Webseite die Seite an sich selbst. Mit dem seitenübergreifenden Senden von Daten können Sie eine Schaltfläche auf einer ASP.NET-Webseite so konfigurieren, dass sie die aktuelle Seite an eine andere Seite sendet. Das Erstellen eines mehrseitigen Formulars ist ein typisches Beispiel. Sie können auf der Seite Schaltflächen konfigurieren, um auf die nächsten oder vorherigen Seiten des Formulars zu gelangen.
Beim seitenübergreifenden Senden von Daten wird die Übertragung wie bei Hyperlinks durch eine Benutzeraktion ausgelöst. Das seitenübergreifende Senden von Daten verwendet zum Aufrufen der Zielseite jedoch den HTTP-POST-Befehl aufgerufen, der die Werte der Steuerelemente auf der Ausgangsseite an die Zielseite sendet. Wenn Ausgangsseite und Zielseite zur gleichen Webanwendung gehören, hat die Zielseite außerdem Zugriff auf die öffentlichen Eigenschaften der Ausgangsseite. Zudem können alle Seiten einer Anwendung die im Sitzungszustand und im Anwendungszustand gespeicherten Informationen gemeinsam verwenden.
Weitere Informationen finden Sie unter Seitenübergreifendes Senden in ASP.NET-Webseiten und Gewusst wie: Senden von ASP.NET-Webseiten an eine andere Seite.
Programmgesteuertes Umleiten mit dem Browser
Sie können die Funktionen des Browsers von Benutzern verwenden, um Benutzer auf eine andere Seite umzuleiten. Bei einer Browserumleitung stellt der Browser eine neue Anforderung in Form einer HTTP-GET-Anforderung an den Zielserver.
Sie können die Umleitung programmgesteuert in Clientskript- oder Servercode auslösen. In Clientskriptcode können Sie die form.submit-Methode aufrufen, wenn im method-Attribut des <form>-Elements der Wert get angegeben ist. In diesem Fall werden ggf. in der aktuellen Seite vorhandene Formulardaten an den Zielserver übergeben, indem die Daten in einer Abfragezeichenfolge an die angeforderte URL angefügt werden.
Im Servercode können Sie durch einen Aufruf der Redirect-Methode programmgesteuert eine Umleitung ausführen. Die Methode sendet einen Befehl an den Browser des Benutzers, durch den der Browser veranlasst wird, einen HTTP-GET-Befehl für die Zielseite auszugeben. Der Aufruf der Redirect-Methode ist die programmgesteuerte Entsprechung zum Klicken auf einen Hyperlink, da hierbei eine neue Zielseitenanforderung ausgelöst wird. Da Sie die Methoden in Ihrem eigenen Code aufrufen, können Sie die Ziel-URL dynamisch unter Berücksichtigung ggf. vorhandener Abfragezeichenfolgeninformationen definieren. Wenn Ausgangs- und Zielseite zur gleichen Webanwendung gehören, können die Seiten gemeinsam auf Daten zugreifen. Fügen Sie hierfür entsprechenden Servercode hinzu, der die Daten im Sitzungszustand speichert.
Hinweis: |
---|
Internet Explorer bis Version 6.0 kann maximal 2.048 Zeichen in der URL verarbeiten, einschließlich der Daten in der Abfragezeichenfolge. Wenn die URL mehr als 2.048 Zeichen enthält, kann ein Fehler auftreten, oder die Daten in der Abfragezeichenfolge werden möglicherweise gekürzt oder vollständig aus der Anforderung entfernt. Bei ASP.NET-Webseiten kann eine GET-Anforderung, die Bereitstellungsdaten beinhaltet, sehr schnell 2.048 Zeichen überschreiten, wenn Ansichtszustandsinformationen (die in einem ausgeblendeten Feld gespeichert werden) als Teil der Anforderung übermittelt werden. In diesem Fall tritt ein Fehler auf. Andere Browser sind möglicherweise nicht von dieser Einschränkung betroffen. Weitere Informationen finden Sie im Artikel 208247, "Maximale URL-Länge in Internet Explorer ist 2.083 Zeichen", in der Microsoft Knowledge Base unter https://support.microsoft.com/?in=de. Um diese Einschränkung beim gemeinsamen Verwenden von Informationen auf mehreren Seiten zu umgehen, können Sie die Benutzer mithilfe von HTTP-POST-Anforderungen umleiten, wie in diesem Thema beschrieben. Wenn Ihre Anwendung eine HTTP-GET-Anforderung erfordert, können Sie die Informationen auf anderem Wege ohne Verwendung einer Abfragezeichenfolge speichern, z. B. im Sitzungszustand. |
Programmgesteuertes Umleiten auf dem Server
Eine weitere Möglichkeit der programmgesteuerten Umleitung zu einer Zielseite besteht darin, auf dem Server die Transfer-Methode aufzurufen. In diesem Szenario überträgt der Server den Kontext der aktuellen Ausgangsseite einfach auf die Zielseite. Die Zielseite wird dann anstelle der Ausgangsseite dargestellt. Die Ausgangsseite und die Zielseite müssen sich in der gleichen Webanwendung befinden. Wie das seitenübergreifende Senden von Daten hat die Transfer-Methode den Vorteil, dass die Zielseite die Werte von Steuerelementen und öffentlichen Eigenschaften der Ausgangsseite lesen kann.
Da die Übertragung zwischen Ausgangsseite und Zielseite auf dem Server stattfindet, hat der Browser keine Informationen über die geänderte Seite, sondern nur Informationen über den ursprünglichen URL (Ausgangs-URL). Beispielsweise ändert sich in Internet Explorer das Feld Adresse nach einer Übertragung nicht. Es zeigt weiterhin den URL der zuletzt angeforderten Seite (i. d. R. die Ausgangsseite) an. Auch der Verlauf der besuchten Seiten wird nach einer Übertragung nicht aktualisiert. Daher können unerwartete Ergebnisse auftreten, wenn der Benutzer im Browser die Seite aktualisiert oder auf die Schaltfläche Zurück klickt. Aus diesem Grund verwenden Sie das Aufrufen der Transfer-Methode am besten in Verbindung mit Anwendungen, bei denen die URLs der Seiten den Benutzern nicht angezeigt werden.
Auswählen einer Umleitungsoption
Die folgende Tabelle fasst die Möglichkeiten für das Umleiten zwischen Seiten zusammen.
Strategie |
Eigenschaften |
Verwendung |
---|---|---|
Hyperlinks |
|
|
Seitenübergreifendes Senden von Daten |
|
|
Umleitung durch den Browser |
|
|
Serverübertragung |
|
|
Siehe auch
Aufgaben
Gewusst wie: Übergeben von Werten zwischen ASP.NET-Webseiten
Gewusst wie: Senden von ASP.NET-Webseiten an eine andere Seite
Gewusst wie: Ermitteln des Aufrufverfahrens einer ASP.NET-Webseite