Sdílet prostřednictvím


HttpResponse.Redirect Metoda

Definice

Přesměruje klienta na novou adresu URL.

Přetížení

Name Description
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 zda má být ukončeno spuště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í vzhledem 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á při 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ředali falseendResponse parametr a pak volali metodu CompleteRequest . Další informace najdete v metodě End.

Poznámka:

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

ASP.NET přesměrování provede vrácením stavového kódu HTTP 302. Alternativní způsob, jak přenést řízení na jinou stránku, je Transfer metoda. Metoda Transfer je obvykle efektivnější, protože nezpůsobí odezvu klienta. Další informace naleznete 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 zda má být ukončeno spuště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, jestli se má ukončit spuště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 na stránku je výsledkem zpětného volání.

Příklady

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

<%@ 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 tuto metodu použijete 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 potom volejte metodu CompleteRequest . Pokud zadáte true parametr endResponse , tato metoda volá metodu End pro původní požadavek, který vyvolá ThreadAbortException výjimku po dokončení. Tato výjimka má nepříznivý vliv na výkon webové aplikace, což je důvod, proč se doporučuje předání false parametru endResponse . Další informace najdete v metodě End.

Poznámka:

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

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

Platí pro