HttpResponse.Redirect Metodo

Definizione

Reindirizza un client a un nuovo URL.

Overload

Redirect(String)

Reindirizza una richiesta a un nuovo URL e specifica il nuovo URL.

Redirect(String, Boolean)

Reindirizza un client a un nuovo URL. Specifica il nuovo URL e se l'esecuzione della pagina corrente deve terminare.

Redirect(String)

Reindirizza una richiesta a un nuovo URL e specifica il nuovo URL.

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

Parametri

url
String

Percorso di destinazione. Può trattarsi di un percorso virtuale relativo dell'applicazione.

Eccezioni

Viene tentato un reindirizzamento dopo l'invio delle intestazioni HTTP.

Esempio

Nell'esempio seguente viene forzato un reindirizzamento non condizionale a un altro sito Web.

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

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

Commenti

Chiamare Redirect equivale a chiamare Redirect con il secondo parametro impostato su true .

Redirect chiamate End che generano un' ThreadAbortException eccezione al completamento dell'operazione. Questa eccezione ha un effetto negativo sulle prestazioni dell'applicazione Web. Pertanto, è consigliabile utilizzare l'overload, anziché questo overload HttpResponse.Redirect(String, Boolean) false , per il endResponse parametro, quindi chiamare il CompleteRequest metodo. Per altre informazioni, vedere il metodo End.

Nota

Solo per le pagine per dispositivi mobili, se l'applicazione si basa su sessioni senza cookie o potrebbe ricevere richieste da dispositivi mobili che richiedono sessioni senza cookie, l'utilizzo di una tilde ( ~ ) in un percorso può comportare la creazione di una nuova sessione e la perdita di dati di sessione. Per impostare una proprietà in un controllo mobile con un percorso quale " ~ /path", risolvere il percorso usando ResolveUrl " ~ /path" prima di assegnarlo alla proprietà.

ASP.NET esegue il reindirizzamento restituendo un codice di stato HTTP 302. Un modo alternativo per trasferire il controllo a un'altra pagina è il Transfer metodo. Il Transfer metodo è in genere più efficiente perché non causa un round trip al client. Per altre informazioni, vedere procedura: reindirizzare gli utenti a un'altra pagina.

Si applica a

Redirect(String, Boolean)

Reindirizza un client a un nuovo URL. Specifica il nuovo URL e se l'esecuzione della pagina corrente deve terminare.

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)

Parametri

url
String

Posizione della destinazione.

endResponse
Boolean

Indica se l'esecuzione della pagina corrente deve terminare.

Eccezioni

url è null.

url contiene un carattere di nuova riga.

Viene tentato un reindirizzamento dopo l'invio delle intestazioni HTTP.

La richiesta della pagina è il risultato di un callback.

Esempio

Nell'esempio seguente viene utilizzata la IsClientConnected proprietà per verificare se il client che sta richiedendo la pagina rimanga connesso al server. Se IsClientConnected è true, il codice chiama il Redirect metodo e il client Visualizza un'altra pagina. Se IsClientConnected è false, il codice chiama il End metodo e l'elaborazione di tutte le pagine viene terminata.

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

Commenti

È possibile specificare un URL assoluto (ad esempio, http://www.contoso.com/default.aspx ) o un URL relativo (ad esempio, default. aspx) per il percorso di destinazione, ma alcuni browser potrebbero rifiutare un URL relativo.

Quando si usa questo metodo in un gestore di pagina per terminare una richiesta di una pagina e avviare una nuova richiesta per un'altra pagina, impostare endResponse su false e quindi chiamare il CompleteRequest metodo. Se si specifica true per il endResponse parametro, questo metodo chiama il End metodo per la richiesta originale, che genera un' ThreadAbortException eccezione quando viene completata. Questa eccezione ha un effetto negativo sulle prestazioni dell'applicazione Web, motivo per cui è false consigliabile passare per il endResponse parametro. Per altre informazioni, vedere il metodo End.

Nota

Per le pagine per dispositivi mobili, se l'applicazione si basa su sessioni senza cookie o può ricevere richieste da dispositivi mobili che richiedono sessioni senza cookie, l'uso di una tilde ( ~ ) in un percorso può creare una nuova sessione e potenzialmente perdere i dati della sessione. Per impostare una proprietà in un controllo mobile con un percorso quale " ~ /path", risolvere il percorso usando ResolveUrl " ~ /path" prima di assegnarlo alla proprietà.

ASP.NET esegue il reindirizzamento restituendo un codice di stato HTTP 302. Un modo alternativo per trasferire il controllo a un'altra pagina è il Transfer metodo. Il Transfer metodo è in genere più efficiente perché non causa un round trip al client. Per altre informazioni, vedere procedura: reindirizzare gli utenti a un'altra pagina.

Si applica a