FAQ ASP.NET/VB.NET
FAQ ASP.NET/VB.NETConsultez toutes les FAQ
Nombre d'auteurs : 38, nombre de questions : 369, dernière mise à jour : 16 juin 2021
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 qui code qui ne donnera pas le résultat souhaité:
Try
' Traitements
Catch
generatedExceptionVariable0 As
Exception
Response
.Redirect
(
"error.aspx"
, False
)
End
Try
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.
Le Response.Redirect permet de rediriger un utilisateur vers une autre page. On l'utilise, par exemple, de la manière suivante:
If Session
(
"Username"
) Is Nothing Then
Response.
Redirect
(
"page.aspx"
)
End If
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é".
Le transfert ne peut se faire que vers des pages .aspx. Malheureusement, aucune erreur n'est signalée dans ce cas.
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().
En ajoutant
Protected
Overrides
Sub
Render
(
Output As
HtmlTextWriter)
If
Not
Response
.IsBeingRedirected
Then
Base.Render
(
writer)
End
If
End
Sub
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.