Freigeben über


HttpResponse.Redirect Methode

Definition

Leitet einen Client zu einer neuen URL um.

Überlädt

Redirect(String)

Leitet eine Anforderung an eine neue URL um und gibt die neue URL an.

Redirect(String, Boolean)

Leitet einen Client zu einer neuen URL um. Gibt die neue URL an und meldet, ob die Ausführung der aktuellen Seite beendet werden soll.

Redirect(String)

Leitet eine Anforderung an eine neue URL um und gibt die neue URL an.

public:
 void Redirect(System::String ^ url);
public void Redirect (string url);
member this.Redirect : string -> unit
Public Sub Redirect (url As String)

Parameter

url
String

Der Zielort. Dies kann ein zur Anwendung relativer virtueller Pfad sein.

Ausnahmen

Nach dem Senden der HTTP-Header wird eine Umleitung versucht.

Beispiele

Im folgenden Beispiel wird eine bedingungslose Umleitung zu einer anderen Website erzwungen.

Response.Redirect("http://www.microsoft.com/gohere/look.htm");

Response.Redirect("http://www.microsoft.com/gohere/look.htm")
   

Hinweise

Das Aufrufen Redirect entspricht dem Aufrufen Redirect mit dem zweiten Parameter, der auf truefestgelegt ist.

Redirect ruft auf End , wodurch nach Abschluss eine ThreadAbortException Ausnahme ausgelöst wird. Diese Ausnahme wirkt sich negativ auf die Leistung der Webanwendung aus. Daher wird empfohlen, anstelle dieser Überladung die HttpResponse.Redirect(String, Boolean) Überladung zu verwenden und für den endResponse -Parameter zu übergeben false und dann die CompleteRequest -Methode aufzurufen. Weitere Informationen finden Sie unter der Methode End.

Hinweis

Wenn Ihre Anwendung auf cookielosen Sitzungen basiert oder Anforderungen von mobilen Geräten empfängt, die cookielose Sitzungen erfordern, kann die Verwendung einer Tilde (~) in einem Pfad dazu führen, dass eine neue Sitzung erstellt wird und möglicherweise Sitzungsdaten verloren gehen. Um eine Eigenschaft für ein mobiles Steuerelement mit einem Pfad wie "~/path" festzulegen, lösen Sie den Pfad mithilfe von ResolveUrl "~/path" auf, bevor Sie ihn der Eigenschaft zuweisen.

ASP.NET führt die Umleitung durch Zurückgeben eines 302-HTTP-status-Codes aus. Eine alternative Möglichkeit zum Übertragen der Steuerung auf eine andere Seite ist die Transfer -Methode. Die Transfer -Methode ist in der Regel effizienter, da sie keinen Roundtrip zum Client verursacht. Weitere Informationen finden Sie unter Vorgehensweise: Umleiten von Benutzern zu einer anderen Seite.

Gilt für:

Redirect(String, Boolean)

Leitet einen Client zu einer neuen URL um. Gibt die neue URL an und meldet, ob die Ausführung der aktuellen Seite beendet werden soll.

public:
 void Redirect(System::String ^ url, bool endResponse);
public void Redirect (string url, bool endResponse);
member this.Redirect : string * bool -> unit
Public Sub Redirect (url As String, endResponse As Boolean)

Parameter

url
String

Der Zielspeicherort.

endResponse
Boolean

Gibt an, ob die Ausführung der aktuellen Seite beendet werden soll.

Ausnahmen

url ist null.

url enthält ein Zeilenumbruchzeichen.

Nach dem Senden der HTTP-Header wird eine Umleitung versucht.

Die Seitenanforderung ist das Ergebnis eines Rückrufs.

Beispiele

Im folgenden Beispiel wird die IsClientConnected -Eigenschaft verwendet, um zu überprüfen, ob der Client, der die Seite anfordert, mit dem Server verbunden bleibt. Wenn IsClientConnected true ist, ruft der Code die Redirect -Methode auf, und der Client zeigt eine weitere Seite an. Wenn IsClientConnected false ist, ruft der Code die End -Methode auf, und die gesamte Seitenverarbeitung wird beendet.

<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

    private void Page_Load(object sender, EventArgs e)
    {
        // Check whether the browser remains
        // connected to the server.
        if (Response.IsClientConnected)
        {
            // If still connected, redirect
            // to another page. 
            Response.Redirect("Page2CS.aspx", false);
        }
        else
        {
            // If the browser is not connected
            // stop all response processing.
            Response.End();
        }
    }

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    Private Sub Page_Load(sender As Object, e As EventArgs)

        ' Check whether the browser remains
        ' connected to the server.
        If (Response.IsClientConnected) Then

            ' If still connected, redirect
            ' to another page.             
            Response.Redirect("Page2VB.aspx", false)
        Else
            ' If the browser is not connected
            ' stop all response processing.
            Response.End()
        End If
    End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>ASP.NET Example</title>
</head>
<body>
    <form id="form1" runat="server">
    </form>
</body>
</html>

Hinweise

Eine absolute URL (z. B http://www.contoso.com/default.aspx. ) oder eine relative URL (z. B. Default.aspx) kann für den Zielspeicherort angegeben werden, aber einige Browser können eine relative URL ablehnen.

Wenn Sie diese Methode in einem Seitenhandler verwenden, um eine Anforderung für eine Seite zu beenden und eine neue Anforderung für eine andere Seite zu starten, legen Sie auf false festendResponse, und rufen Sie dann die CompleteRequest -Methode auf. Wenn Sie für den Parameter angebentrue, ruft diese Methode die End -Methode für die ursprüngliche Anforderung auf, die nach Abschluss eine ThreadAbortException Ausnahme endResponse auslöst. Diese Ausnahme wirkt sich negativ auf die Leistung der Webanwendung aus, weshalb die Übergabe false für den endResponse Parameter empfohlen wird. Weitere Informationen finden Sie unter der Methode End.

Hinweis

Wenn Ihre Anwendung auf mobilen Seiten cookielose Sitzungen verwendet oder Anforderungen von mobilen Geräten empfängt, die cookielose Sitzungen erfordern, kann die Verwendung einer Tilde (~) in einem Pfad eine neue Sitzung erstellen und möglicherweise Sitzungsdaten verlieren. Um eine Eigenschaft für ein mobiles Steuerelement mit einem Pfad wie "~/path" festzulegen, lösen Sie den Pfad mithilfe von ResolveUrl "~/path" auf, bevor Sie ihn der Eigenschaft zuweisen.

ASP.NET führt die Umleitung durch Zurückgeben eines 302-HTTP-status-Codes aus. Eine alternative Möglichkeit zum Übertragen der Steuerung auf eine andere Seite ist die Transfer -Methode. Die Transfer -Methode ist in der Regel effizienter, da sie keinen Roundtrip zum Client verursacht. Weitere Informationen finden Sie unter Vorgehensweise: Umleiten von Benutzern zu einer anderen Seite.

Gilt für: