Sdílet prostřednictvím


HttpResponse.Redirect Metoda

Definice

Přesměruje klienta na novou adresu URL.

Přetížení

Redirect(String)

Přesměruje požadavek na novou adresu URL a určí novou adresu URL.

Redirect(String, Boolean)

Přesměruje klienta na novou adresu URL. Určuje novou adresu URL a to, jestli se má ukončit provádění aktuální stránky.

Redirect(String)

Přesměruje požadavek na novou adresu URL a určí novou adresu URL.

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

Parametry

url
String

Cílové umístění. Může se jednat o virtuální cestu relativní k aplikaci.

Výjimky

Po odeslání hlaviček HTTP dojde k pokusu o přesměrování.

Příklady

Následující příklad vynutí bezpodmínečné přesměrování na jiný web.

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

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

Poznámky

Volání Redirect je ekvivalentní volání Redirect s druhým parametrem nastaveným na true.

Redirect volání End , která po dokončení vyvolá ThreadAbortException výjimku. Tato výjimka má nepříznivý vliv na výkon webové aplikace. Proto doporučujeme, abyste místo tohoto přetížení použili HttpResponse.Redirect(String, Boolean) přetížení a předávali false parametr endResponse a pak volali metodu CompleteRequest . Další informace najdete v End metodě.

Poznámka

Pouze u mobilních stránek platí, že pokud vaše aplikace spoléhá na relace bez souborů cookie nebo může přijímat požadavky z mobilních zařízení, která vyžadují relace bez souborů cookie, může použití tildy (~) v cestě vést k vytvoření nové relace a potenciální ztrátě dat relace. Pokud chcete u mobilního ovládacího prvku nastavit vlastnost s cestou, například ~/path, před přiřazením cesty k vlastnosti přeložte cestu pomocí ResolveUrl příkazu ~/path.

ASP.NET provede přesměrování vrácením stavového kódu HTTP 302. Alternativním způsobem přenosu řízení na jinou stránku je Transfer metoda . Metoda Transfer je obvykle efektivnější, protože nezpůsobí odezvu klienta. Další informace najdete v tématu Postupy: Přesměrování uživatelů na jinou stránku.

Platí pro

Redirect(String, Boolean)

Přesměruje klienta na novou adresu URL. Určuje novou adresu URL a to, jestli se má ukončit provádění aktuální stránky.

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)

Parametry

url
String

Umístění cíle.

endResponse
Boolean

Určuje, zda má být ukončeno provádění aktuální stránky.

Výjimky

url je null.

url obsahuje znak nového řádku.

Po odeslání hlaviček HTTP dojde k pokusu o přesměrování.

Požadavek stránky je výsledkem zpětného volání.

Příklady

Následující příklad používá IsClientConnected vlastnost ke kontrole, zda klient, který požaduje stránku, zůstává připojen k serveru. Pokud IsClientConnected je hodnota true, kód zavolá metodu Redirect a klient zobrazí další stránku. Pokud IsClientConnected je hodnota false, kód zavolá metodu End a veškeré zpracování stránky se ukončí.

<%@ 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>

Poznámky

Pro cílové umístění je možné zadat absolutní adresu URL (například http://www.contoso.com/default.aspx) nebo relativní adresu URL (například Default.aspx), ale některé prohlížeče můžou relativní adresu URL odmítnout.

Pokud použijete tuto metodu v obslužné rutině stránky k ukončení požadavku na jednu stránku a spuštění nového požadavku na jinou stránku, nastavte endResponse na false a pak volejte metodu CompleteRequest . Pokud zadáte true parametr endResponse , tato metoda volá metodu End pro původní požadavek, která po dokončení vyvolá ThreadAbortException výjimku. Tato výjimka má nepříznivý vliv na výkon webové aplikace, proto se doporučuje předat falseendResponse parametr. Další informace najdete v End metodě.

Poznámka

U mobilních stránek platí, že pokud vaše aplikace spoléhá na relace bez souborů cookie nebo může přijímat požadavky z mobilních zařízení, která vyžadují relace bez souborů cookie, může použití tildy (~) v cestě vytvořit novou relaci a potenciálně ztratit data relace. Pokud chcete u mobilního ovládacího prvku nastavit vlastnost s cestou, například ~/path, před přiřazením cesty k vlastnosti přeložte cestu pomocí ResolveUrl příkazu ~/path.

ASP.NET provede přesměrování vrácením stavového kódu HTTP 302. Alternativním způsobem přenosu řízení na jinou stránku je Transfer metoda . Metoda Transfer je obvykle efektivnější, protože nezpůsobí odezvu klienta. Další informace najdete v tématu Postupy: Přesměrování uživatelů na jinou stránku.

Platí pro