HttpResponse.Redirect Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przekierowuje klienta do nowego adresu URL.
Przeciążenia
Redirect(String) |
Przekierowuje żądanie do nowego adresu URL i określa nowy adres URL. |
Redirect(String, Boolean) |
Przekierowuje klienta do nowego adresu URL. Określa nowy adres URL i określa, czy wykonanie bieżącej strony powinno zakończyć się. |
Redirect(String)
Przekierowuje żądanie do nowego adresu URL i określa nowy adres 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
Lokalizacja docelowa. Może to być ścieżka wirtualna względna dla aplikacji.
Wyjątki
Próba przekierowania jest podejmowana po wysłaniu nagłówków HTTP.
Przykłady
Poniższy przykład wymusza bezwarunkowe przekierowanie do innej witryny sieci Web.
Response.Redirect("http://www.microsoft.com/gohere/look.htm");
Response.Redirect("http://www.microsoft.com/gohere/look.htm")
Uwagi
Wywołanie Redirect jest równoważne wywołaniu Redirect przy użyciu drugiego parametru ustawionego na true
wartość .
Redirect wywołania End , które zgłasza ThreadAbortException wyjątek po zakończeniu. Ten wyjątek ma szkodliwy wpływ na wydajność aplikacji internetowej. W związku z tym zalecamy, aby zamiast tego przeciążenia użyć HttpResponse.Redirect(String, Boolean) przeciążenia i przekazać false
parametr endResponse
, a następnie wywołać metodę CompleteRequest . Aby uzyskać więcej informacji, zobacz metodę End .
Uwaga
Tylko w przypadku stron mobilnych, jeśli aplikacja korzysta z sesji bez plików cookie lub może odbierać żądania z urządzeń przenośnych wymagających sesji bez plików cookie, użycie tyldy (~) w ścieżce może spowodować utworzenie nowej sesji i potencjalnie utratę danych sesji. Aby ustawić właściwość w kontrolce mobilnej z ścieżką, taką jak "~/path", rozwiąż ścieżkę przy użyciu ResolveUrl ciągu "~/path" przed przypisaniem jej do właściwości.
ASP.NET wykonuje przekierowanie, zwracając kod stanu HTTP 302. Alternatywną metodą transferu kontrolki do innej strony jest Transfer metoda. Metoda Transfer jest zazwyczaj bardziej wydajna, ponieważ nie powoduje rundy do klienta. Aby uzyskać więcej informacji, zobacz Instrukcje: przekierowywanie użytkowników do innej strony.
Dotyczy
Redirect(String, Boolean)
Przekierowuje klienta do nowego adresu URL. Określa nowy adres URL i określa, czy wykonanie bieżącej strony powinno zakończyć się.
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
Lokalizacja obiektu docelowego.
- endResponse
- Boolean
Wskazuje, czy wykonanie bieżącej strony powinno zakończyć się.
Wyjątki
url
to null
.
url
zawiera znak nowego wiersza.
Próba przekierowania jest podejmowana po wysłaniu nagłówków HTTP.
Żądanie strony jest wynikiem wywołania zwrotnego.
Przykłady
W poniższym przykładzie użyto właściwości w IsClientConnected celu sprawdzenia, czy klient żądający strony pozostaje połączony z serwerem. Jeśli IsClientConnected ma wartość true, kod wywołuje metodę Redirect , a klient wyświetli inną stronę. Jeśli IsClientConnected jest fałsz, kod wywołuje metodę End , a wszystkie przetwarzanie stron zostanie zakończone.
<%@ 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>
Uwagi
Bezwzględny adres URL (na przykład ) lub względny adres URL (na przykład Default.aspx) można określić dla lokalizacji docelowej, http://www.contoso.com/default.aspx
ale niektóre przeglądarki mogą odrzucić względny adres URL.
Jeśli używasz tej metody w procedurze obsługi stron, aby zakończyć żądanie dla jednej strony i uruchomić nowe żądanie dla innej strony, ustaw wartość endResponse
false
, a następnie wywołaj metodę CompleteRequest . Jeśli określisz true
parametr dla parametru endResponse
, ta metoda wywołuje End metodę dla oryginalnego żądania, co zgłasza ThreadAbortException wyjątek po zakończeniu. Ten wyjątek ma szkodliwy wpływ na wydajność aplikacji internetowej, dlatego zaleca się przekazywanie false
parametru endResponse
. Aby uzyskać więcej informacji, zobacz metodę End .
Uwaga
W przypadku stron mobilnych, jeśli aplikacja korzysta z sesji bez plików cookie lub może odbierać żądania z urządzeń przenośnych wymagających sesji bez plików cookie, użycie tyldy (~) w ścieżce może utworzyć nową sesję i potencjalnie utracić dane sesji. Aby ustawić właściwość w kontrolce mobilnej z ścieżką, taką jak "~/path", rozwiąż ścieżkę przy użyciu ResolveUrl ciągu "~/path" przed przypisaniem jej do właściwości.
ASP.NET wykonuje przekierowanie, zwracając kod stanu HTTP 302. Alternatywną metodą transferu kontrolki do innej strony jest Transfer metoda. Metoda Transfer jest zazwyczaj bardziej wydajna, ponieważ nie powoduje rundy do klienta. Aby uzyskać więcej informacji, zobacz Instrukcje: przekierowywanie użytkowników do innej strony.