HttpResponse.Redirect Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Redirige un client vers une nouvelle URL.
Surcharges
| Nom | Description |
|---|---|
| Redirect(String) |
Redirige une requête vers une nouvelle URL et spécifie la nouvelle URL. |
| 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 se terminer. |
Redirect(String)
Redirige une requête vers une nouvelle URL et spécifie la nouvelle URL.
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. Il peut s’agir d’un chemin virtuel relatif à l’application.
Exceptions
Une redirection est 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 appels End qui lèvent une ThreadAbortException exception à la fin. Cette exception a un effet néfaste sur les performances des applications web. Par conséquent, nous vous recommandons false d’utiliser la surcharge et de passer le HttpResponse.Redirect(String, Boolean)endResponse paramètre au lieu de cette surcharge, puis d’appeler la CompleteRequest méthode. Pour plus d’informations, consultez la End méthode.
Note
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 éventuellement la perte de 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 d’état 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 au 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 se terminer.
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 de la cible.
- endResponse
- Boolean
Indique si l’exécution de la page active doit se terminer.
Exceptions
url a la valeur null.
url contient un caractère de ligne.
Une redirection est 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 vérifier si le client qui demande la page reste connecté au serveur. Si IsClientConnected c’est vrai, le code appelle la Redirect méthode et le client affiche une autre page. Si IsClientConnected la valeur est false, le code appelle la End méthode et tout le traitement de page est arrêté.
<%@ 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.aspxou 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-la endResponsefalse , puis appelez la CompleteRequest méthode. Si vous spécifiez true pour le endResponse paramètre, cette méthode appelle la End méthode de la requête d’origine, qui lève une ThreadAbortException exception lorsqu’elle se termine. Cette exception a un effet néfaste sur les performances des applications web, ce qui explique pourquoi la transmission false du endResponse paramètre est recommandée. Pour plus d’informations, consultez la End méthode.
Note
Pour les pages mobiles, 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 créer une session et éventuellement 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 d’état 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 au client. Pour plus d’informations, consultez Guide pratique pour rediriger les utilisateurs vers une autre page.