Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Page invalide

7 réponses
Avatar
Sébastien EDEL
Bonjour,

Je suis débutant en Asp.Net et j'ai un problème.

Sur une page, je fait un traitement puis j'appel Response.Redirect pour me
diriger sur une autre page.

Mon problème est que le bouton "Précédent" du navigateur permet de revenir
sur la page et que cette page n'a plus aucune raison d'exister (Dans l'état
avant le Redirect en tout cas).

1) Est-il possible de forcer le rechargement de cette page lorsque le
navigateur l'affiche depuis le bouton précédent?
2) Ou, est-il possible d'invalider la page pour qu'un message d'erreur
s'affiche. "La page que vous essayez d'afficher n'est plus displonible..."
3) Ou, est-il possible de désactiver le bouton précédent sur le navigateur ?

Merci, Sébastien

7 réponses

Avatar
Paul Bacelar
"Sébastien EDEL" wrote in message
news:
Bonjour,

Je suis débutant en Asp.Net et j'ai un problème.

Sur une page, je fait un traitement puis j'appel Response.Redirect pour me
diriger sur une autre page.

Mon problème est que le bouton "Précédent" du navigateur permet de revenir
sur la page et que cette page n'a plus aucune raison d'exister (Dans


l'état
avant le Redirect en tout cas).

1) Est-il possible de forcer le rechargement de cette page lorsque le
navigateur l'affiche depuis le bouton précédent?



NON

2) Ou, est-il possible d'invalider la page pour qu'un message d'erreur
s'affiche. "La page que vous essayez d'afficher n'est plus displonible..."



pas facilement

3) Ou, est-il possible de désactiver le bouton précédent sur le navigateur


?

NON


Merci, Sébastien










Le plus simple est de n'avoir qu'une page à état (l'objet session est ton
ami).

Si la première page n'est là que pour du traitement pensez aux appels de
callbacks clients.
http://msdn.microsoft.com/msdnmag/issues/04/08/CuttingEdge/
--
Paul Bacelar
Avatar
Sebastien Bovo [MS]
Bonjour,

Je ne sais pas ce que tu fais dans ces deux pages, mais as-tu pensé au

Server.Transfer

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpserverutilityclasstransfertopic.asp

--
Cordialement,

Sebastien Bovo
Microsoft France
----------
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.


"Sébastien EDEL" wrote in message
news:
Bonjour,

Je suis débutant en Asp.Net et j'ai un problème.

Sur une page, je fait un traitement puis j'appel Response.Redirect pour me
diriger sur une autre page.

Mon problème est que le bouton "Précédent" du navigateur permet de revenir
sur la page et que cette page n'a plus aucune raison d'exister (Dans
l'état
avant le Redirect en tout cas).

1) Est-il possible de forcer le rechargement de cette page lorsque le
navigateur l'affiche depuis le bouton précédent?
2) Ou, est-il possible d'invalider la page pour qu'un message d'erreur
s'affiche. "La page que vous essayez d'afficher n'est plus displonible..."
3) Ou, est-il possible de désactiver le bouton précédent sur le navigateur
?

Merci, Sébastien









Avatar
Sébastien EDEL
Tout d'abord merci pour vos réponse.

J'ai fait le test pour l'utilisation de Server.Transfert plutôt que
Response.Redirect mais j'ai le même comportement.

Quelques explications par rapport à la situation.

Imaginons que l'utilisateur se trouve sur une page pour laquelle il doit
valider un grand volume de données dans une base. Pour cela il a 2 boutons:
Annuler : Supprime les données de la base.
Valider : Valide les données de la base.

Après l'appui sur valider, l'utilisateur peut librement utiliser le bouton
précédent et venir appuyer sur le bouton annuler qui aura pour conséquence
de supprimer les données de la base qu'il vient de supprimer.

C'est un comportement plus ou moins bizarre. Mais pour des utilisateurs un
peu "neuneu", ça risque de poser problème.

Maintenant que vous connaissez le contexte du problème, vous avez peut être
des nouvelles suggestions.


"Sebastien Bovo [MS]" a écrit dans le message
de news:
Bonjour,

Je ne sais pas ce que tu fais dans ces deux pages, mais as-tu pensé au

Server.Transfer




http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebhttpserverutilityclasstransfertopic.asp

--
Cordialement,

Sebastien Bovo
Microsoft France
----------
Ce message est fourni en l'état, sans garantie d'aucune sorte, et ne vous
confère aucun droit. Vous assumez tous les risques liés à son utilisation.


"Sébastien EDEL" wrote in message
news:
> Bonjour,
>
> Je suis débutant en Asp.Net et j'ai un problème.
>
> Sur une page, je fait un traitement puis j'appel Response.Redirect pour


me
> diriger sur une autre page.
>
> Mon problème est que le bouton "Précédent" du navigateur permet de


revenir
> sur la page et que cette page n'a plus aucune raison d'exister (Dans
> l'état
> avant le Redirect en tout cas).
>
> 1) Est-il possible de forcer le rechargement de cette page lorsque le
> navigateur l'affiche depuis le bouton précédent?
> 2) Ou, est-il possible d'invalider la page pour qu'un message d'erreur
> s'affiche. "La page que vous essayez d'afficher n'est plus


displonible..."
> 3) Ou, est-il possible de désactiver le bouton précédent sur le


navigateur
> ?
>
> Merci, Sébastien
>
>
>
>
>
>
>




Avatar
Delf
Sébastien EDEL wrote:

[...]



Utilise l'objet Session, genre :

1° page :

if ((bool)Session["FirstPageViewed"] != true)
{
...
Traitements...
...

Session["FirstPageViewed"] = true;

Response.Redirect(vers 2° page);
}
else
{
Response.Write("Deja vu !");
}

2° page :

if ((bool)Session["FirstPageViewed"] == true)
{
Session.Remove("FirstPageViewed");
...
Traitements...
...
}
else
{
Response.Redirect(vers 1° page);
}

C'est une idée, il y en a d'autres.

--
Delf
Avatar
Sébastien EDEL
Je suis d'accord.
Le seul problème c'est que lors d'un appui sur le bouton précédent, il n'y a
pas d'aller retour vers le serveur. (La page doit être en cache) Donc je ne
peux pas faire le test.


"Delf" a écrit dans le message de
news:432a766a$0$1139$
Sébastien EDEL wrote:

> [...]

Utilise l'objet Session, genre :

1° page :

if ((bool)Session["FirstPageViewed"] != true)
{
...
Traitements...
...

Session["FirstPageViewed"] = true;

Response.Redirect(vers 2° page);
}
else
{
Response.Write("Deja vu !");
}

2° page :

if ((bool)Session["FirstPageViewed"] == true)
{
Session.Remove("FirstPageViewed");
...
Traitements...
...
}
else
{
Response.Redirect(vers 1° page);
}

C'est une idée, il y en a d'autres.

--
Delf


Avatar
Fred
Dans : news:,
Sébastien EDEL disait :
Je suis d'accord.
Le seul problème c'est que lors d'un appui sur le bouton précédent,
il n'y a pas d'aller retour vers le serveur. (La page doit être en
cache) Donc je ne peux pas faire le test.




Bonjour,
Par contre si elle est repostée, puisque c'est là le problème, tu peux
t'en rendre compte.
Ce n'est pas exactement ce que tu voulais mais cela évites les erreurs.

--
Fred
http://www.cerbermail.com/?3kA6ftaCvT
Avatar
Delf
Sébastien EDEL wrote:

Le seul problème c'est que lors d'un appui sur le bouton précédent, il n'y a
pas d'aller retour vers le serveur. (La page doit être en cache) Donc je ne
peux pas faire le test.



Excuse moi, c'est vrai.

Je vois 2 solutions :

1° : Tu empêches le navigateur de mettre en cache la page (il existe une
casse à cette effet mais je l'a connais pas, désolé). Je n'aime pas
cette solution.

2° : L'utilisateur valide la 1° page, il arrive sur la 2° ; dans
celle-ci, au niveau de la méthode Page_Load(), tu mets une variable
Session :

Session["BackspaceDenied"] = true;

Ensuite, si l'utilisateur utilise le Backspace, la 1° page s'affiche et
quand il valide cette page, tu fais un truc du genre :

...
if ((bool)Session["BackspaceDenied"] == true)
{
Response.Write("Page déjà traitée préalablement.");
}

Penses tout de même à supprimer les variables de Session :)

Bon week-end.

--
Delf