Newsletter Developpez.com

Inscrivez-vous gratuitement au Club pour recevoir
la newsletter hebdomadaire des développeurs et IT pro

FAQ ASP.NET/C#Consultez toutes les FAQ

Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireNavigationRedirections

Le deuxième paramètre signifie "faut-il interrompre le traitement en cours avant de faire la redirection?".

Ainsi, si le paramètre est false, il attend la fin du traitement de la page. Si un autre appel de la méthode Response.Redirect est présent c'est ce dernier qui sera pris en compte.

Un exemple de code qui ne donnera pas le résultat souhaité:

 
Sélectionnez

try
{
	// ...
}
catch (Exception)
{
	Response.Redirect("error.aspx", false);
}
Response.Redirect("ok.aspx", false);
				

En cas d'exception, on lui signale qu'il doit faire une redirection vers la page d'erreur à la fin du traitement et puis on lui dit de faire la redirection vers ok.aspx. Ce sera donc vers cette page que la redirection sera effectuée.

Créé le 23 mai 2005  par Didier Danse

Le Response.Redirect permet de rediriger un utilisateur vers une autre page. On l'utilise, par exemple, de la manière suivante:

 
Sélectionnez

if (Session["Username"] == null)
	Response.Redirect("page.aspx");
				

Ce qui signifie que si l'utilisateur n'est pas connecté, il est redirigé vers la page spécifiée. Le résultat n'est pas toujours celui attendu car il se peut que la méthode lance une exception dont le message est "Le thread a été abandonné".

Créé le 23 mai 2005  par Didier Danse

Le transfert ne peut se faire que vers des pages .aspx. Malheureusement, aucune erreur n'est signalée dans ce cas.

Créé le 4 septembre 2006  par Didier Danse

Response.Redirect envoie au navigateur client l'adresse de la page vers laquelle il doit être redirigé tandis que Server.Transfer permet d'exécuter le contenu d'une page sans pour autant avoir effectué un retour vers le client.
Dès lors, n'utilisez pas Server.Transfer si vous attachez de l'importance au fait que l'adresse présente dans votre navigateur soit la bonne.
A noter que si vous souhaitez utiliser Server.Transfer pour supprimer l'exception due au Response.Redirect, ce n'est à nouveau pas la bonne solution.
Préférez la méthode Execute(path, null, preserveForm) en ayant au préalable effectué un Response.Clear().

Créé le 14 novembre 2007  par Didier Danse

En ajoutant

 
Sélectionnez
 
protected override void Render (HtmlTextWriter writer)
{
	If (!Response.IsBeingRedirected)
		Base.Render(writer) ;
}

Sur les pages que vous souhaitez. Bien entendu, si vous utilisez une master page, n'hésitez pas à placer cet élément dans la MasterPage, ce qui aura comme impact de réaliser l'opération dans chacune des pages.

Créé le 14 novembre 2007  par Didier Danse
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.