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

L'esempio seguente forza un reindirizzamento incondizionato a un altro sito Web.

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

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

Commenti

La chiamata equivale alla chiamata RedirectRedirect con il secondo parametro impostato su true.

Redirect chiamate End che generano un'eccezione ThreadAbortException al completamento. Questa eccezione ha un effetto dannoso sulle prestazioni dell'applicazione Web. Pertanto, è consigliabile che anziché questo overload usi l'overload HttpResponse.Redirect(String, Boolean) e passi per il endResponse parametro e false quindi chiami 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, usando una tilde (~) in un percorso può comportare la creazione di una nuova sessione e potenzialmente perdita di dati di sessione. Per impostare una proprietà su un controllo mobile con un percorso come "~/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 in 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 usata la IsClientConnected proprietà per verificare se il client che richiede la pagina rimane connesso al server. Se IsClientConnected è true, il codice chiama il Redirect metodo e il client visualizzerà un'altra pagina. Se IsClientConnected è false, il codice chiama il metodo e l'elaborazione End 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 possono rifiutare un URL relativo.

Quando si usa questo metodo in un gestore di pagine per terminare una richiesta per 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'eccezione ThreadAbortException al termine. Questa eccezione ha un effetto negativo sulle prestazioni dell'applicazione Web, motivo per cui è consigliabile passare false il endResponse parametro. Per altre informazioni, vedere il metodo End.

Nota

Per le pagine mobili, se l'applicazione si basa su sessioni senza cookie o potrebbe ricevere richieste da dispositivi mobili che richiedono sessioni senza cookie, usando una tilde (~) in un percorso può creare una nuova sessione e potenzialmente perdere dati di sessione. Per impostare una proprietà su un controllo mobile con un percorso come "~/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 in 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