HttpResponse.Redirect Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 false
endResponse
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.