2008-12-01 6 views
4

Faire un rafraîchissement après une certaine action dans asp.net semble les faire se reproduire même si cette action n'a pas de sens (pensez double suppression). La façon de traiter cette situation sur le Web consiste à rediriger après une publication pour obtenir une version propre de la page qui peut être actualisée sans avoir à transférer une action vers le serveur Web. Comment puis-je faire cela avec ASP.NETComment utiliser le "Post/Redirect/Get" alias "Redirect after Post" avec asp.net

+0

Quelle version d'ASP.NET? –

+0

J'utilise .NET Framework 2.0 mais je serais intéressé par les réponses qui s'appliquent à toutes les versions du framework – minty

Répondre

5

J'ai le sentiment qu'il y a un problème plus profond que je ne reçois pas mais ici va. Dans votre événement de publication:

// the post handling logic, e.g. the click event code 
Response.Redirect(Request.RawUrl); 
+0

Cela devrait être 'Response.Redirect (Request.RawUrl, false);' pour terminer le traitement et éviter les sessions de suppression d'application, etc. – GlennG

-1

Utilisez la méthode Server.Transfer.

La méthode Server.Transfer a un deuxième paramètre "preserveForm". Si vous définissez cette valeur sur True à l'aide d'une instruction telle que Server.Transfer ("WebForm2.aspx", True), la chaîne de requête existante et toutes les variables de formulaire seront toujours disponibles sur la page vers laquelle vous transférez.

http://www.developer.com/net/asp/article.php/3299641

+4

Alors, comment cela empêcherait-il la double suppression ou la double soumission?/ – BobbyShaftoe

+0

@BobbyShaftoe Ce ne serait pas le cas. Vous ne pouvez pas utiliser Server.Transfer, car P-R-G * requiert que le client reçoive un code d'état de redirection. –