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
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 endResponse
false
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.