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.

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

  • Die Zielseite wird neu angefordert.

  • Informationen der aktuellen Seite werden nicht an die Zielseite übergeben.

  • Erfordert Aktivierung durch den Benutzer.

  • Umleitung zu einer beliebigen Seite, auch außerhalb der Webanwendung.

  • Informationen können mithilfe von Abfragezeichenfolge oder Sitzungszustand gemeinsam von verschiedenen Seiten verwendet werden. (Mit dem HyperLink-Steuerelement können Sie URLs und Abfragezeichenfolgen programmgesteuert generieren.)

  • Zur Navigation ohne zusätzliche Verarbeitungsschritte, wie in Menüs oder Listen von Hyperlinks.

  • Wenn die Navigation vom Benutzer gesteuert werden sollte.

Seitenübergreifendes Senden von Daten

  • Sendet die Informationen der aktuellen Seite an die Zielseite.

  • Sendeinformationen werden auf der Zielseite verfügbar gemacht.

  • Erfordert Aktivierung durch den Benutzer.

  • Umleitung zu einer beliebigen Seite, auch außerhalb der Webanwendung.

  • Die Zielseite kann die öffentlichen Eigenschaften der Ausgangsseite lesen, wenn beide Seiten zur gleichen Webanwendung gehören.

  • Informationen können von der aktuellen Seite an die Zielseite übergeben werden (wie in mehrseitigen Formularen).

  • Wenn die Navigation vom Benutzer gesteuert werden sollte.

Umleitung durch den Browser

  • Führt eine neue HTTP-GET-Anforderung für die Zielseite aus.

  • Übergibt die Abfragezeichenfolge (sofern vorhanden) an die Zielseite. In Internet Explorer ist die Größe der Abfragezeichenfolge auf 2.048 Zeichen beschränkt.

  • Bietet programmgesteuerte und dynamische Kontrolle über den Ziel-URL und die Abfragezeichenfolge.

  • Ermöglicht die Umleitung zu einer beliebigen Seite, auch außerhalb der Webanwendung.

  • Erlaubt es, Informationen durch die Speicherung im Sitzungszustand gemeinsam auf Ausgangs- und Zielseite zu verwenden.

  • Für bedingte Navigation, d. h., wenn Sie über die Ziel-URL und den Zeitpunkt der Navigation entscheiden möchten. Verwenden Sie diese Option, wenn die Anwendung die Zielseite anhand von Daten bestimmen muss, die der Benutzer bereitstellt.

Serverübertragung

  • Übergibt die Steuerung an eine neue Seite, die anstelle der Ausgangsseite dargestellt wird.

  • Leitet nur zu Zielseiten um, die in der gleichen Webanwendung wie die Quellseite sind.

  • Werte und öffentliche Eigenschaften können von der Quellseite aus gelesen werden.

  • Aktualisiert keine Browserinformationen mit Informationen über die Zielseite. Wenn im Browser auf die Schaltflächen Aktualisieren oder Zurück geklickt wird, kann dies zu unerwartetem Verhalten führen.

  • Für bedingte Navigation, d. h., wenn Sie den Zeitpunkt der Navigation steuern und Zugriff auf den Kontext der Ausgangsseite haben möchten.

  • Empfiehlt sich in Fällen, in denen die URL dem Benutzer nicht angezeigt wird.

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

Konzepte

Übersicht über die ASP.NET-Zustandsverwaltung