Udostępnij za pośrednictwem


HttpResponse.Redirect Metoda

Definicja

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 truewartość .

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.aspxale 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ść endResponsefalse , 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.

Dotyczy