Partager via


HttpResponse.Redirect Méthode

Définition

Redirige un client vers une nouvelle URL.

Surcharges

Redirect(String)

Redirige une requête vers une nouvelle URL en spécifiant celle-ci.

Redirect(String, Boolean)

Redirige un client vers une nouvelle URL. Spécifie la nouvelle URL et indique si l'exécution de la page active doit s'arrêter.

Redirect(String)

Redirige une requête vers une nouvelle URL en spécifiant celle-ci.

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

Paramètres

url
String

Emplacement cible. Cela peut être un chemin virtuel relatif à l’application.

Exceptions

Une redirection a été tentée après l’envoi des en-têtes HTTP.

Exemples

L’exemple suivant force une redirection inconditionnelle vers un autre site Web.

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

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

Remarques

L’appel Redirect équivaut à appeler Redirect avec le deuxième paramètre défini sur true.

Redirect appelle End qui lève une ThreadAbortException exception à l’achèvement. Cette exception a un effet négatif sur les performances des applications web. Par conséquent, au lieu de cette surcharge, nous vous recommandons d’utiliser la HttpResponse.Redirect(String, Boolean) surcharge et de passer pour le endResponse paramètre, puis d’appeler la CompleteRequest méthode.false Pour plus d'informations, voir la méthode End.

Notes

Pour les pages mobiles uniquement, si votre application s’appuie sur des sessions sans cookie ou peut recevoir des demandes d’appareils mobiles qui nécessitent des sessions sans cookie, l’utilisation d’un tilde (~) dans un chemin d’accès peut entraîner la création d’une session et la perte potentielle des données de session. Pour définir une propriété sur un contrôle mobile avec un chemin d’accès tel que « ~/path », résolvez le chemin à l’aide ResolveUrl de « ~/path » avant de l’affecter à la propriété.

ASP.NET effectue la redirection en retournant un code de status HTTP 302. Une autre façon de transférer le contrôle vers une autre page est la Transfer méthode . La Transfer méthode est généralement plus efficace, car elle n’entraîne pas d’aller-retour vers le client. Pour plus d’informations, consultez Guide pratique pour rediriger les utilisateurs vers une autre page.

S’applique à

Redirect(String, Boolean)

Redirige un client vers une nouvelle URL. Spécifie la nouvelle URL et indique si l'exécution de la page active doit s'arrêter.

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)

Paramètres

url
String

Emplacement cible.

endResponse
Boolean

Indique si l'exécution de la page active doit s'arrêter.

Exceptions

url a la valeur null.

url contient un caractère de saut de ligne.

Une redirection a été tentée après l’envoi des en-têtes HTTP.

La demande de page est le résultat d’un rappel.

Exemples

L’exemple suivant utilise la IsClientConnected propriété pour case activée si le client qui demande la page reste connecté au serveur. Si IsClientConnected a la valeur true, le code appelle la Redirect méthode et le client affiche une autre page. Si IsClientConnected a la valeur false, le code appelle la méthode et tout le End traitement de page est terminé.

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

Remarques

Une URL absolue (par exemple, http://www.contoso.com/default.aspx) ou une URL relative (par exemple, Default.aspx) peut être spécifiée pour l’emplacement cible, mais certains navigateurs peuvent rejeter une URL relative.

Lorsque vous utilisez cette méthode dans un gestionnaire de pages pour mettre fin à une demande d’une page et démarrer une nouvelle demande pour une autre page, définissez endResponsefalse sur et appelez la CompleteRequest méthode. Si vous spécifiez true pour le endResponse paramètre, cette méthode appelle la End méthode pour la requête d’origine, qui lève une ThreadAbortException exception à la fin de l’opération. Cette exception a un effet négatif sur les performances de l’application web, c’est pourquoi il est recommandé de passer false pour le endResponse paramètre. Pour plus d'informations, voir la méthode End.

Notes

Pour les pages mobiles, si votre application s’appuie sur des sessions sans cookie ou peut recevoir des requêtes d’appareils mobiles qui nécessitent des sessions sans cookie, l’utilisation d’un tilde (~) dans un chemin d’accès peut créer une session et potentiellement perdre des données de session. Pour définir une propriété sur un contrôle mobile avec un chemin d’accès tel que « ~/path », résolvez le chemin à l’aide ResolveUrl de « ~/path » avant de l’affecter à la propriété.

ASP.NET effectue la redirection en retournant un code de status HTTP 302. Une autre façon de transférer le contrôle vers une autre page est la Transfer méthode . La Transfer méthode est généralement plus efficace, car elle n’entraîne pas d’aller-retour vers le client. Pour plus d’informations, consultez Guide pratique pour rediriger les utilisateurs vers une autre page.

S’applique à