Je dois détecter lorsqu'un utilisateur actualise la page dans l'événement Page_Init pour l'empêcher d'exécuter deux fois le même code. Quelle est la façon de le faire dans ASP.NETASP.NET Détection de page dans Page_Init
grâce
Je dois détecter lorsqu'un utilisateur actualise la page dans l'événement Page_Init pour l'empêcher d'exécuter deux fois le même code. Quelle est la façon de le faire dans ASP.NETASP.NET Détection de page dans Page_Init
grâce
Oui, la propriété Page.IsPostBack
:
Obtient une valeur indiquant si la page est chargée en réponse à un postback client , ou s'il est chargé et accédé pour la première heure .
Voici an article qui parle de différentes façons de traiter ce problème, même si je ne suis pas sûr que cela corresponde à 100% à votre situation.
+1 Il existe différentes solutions dans l'article qui devraient, d'une manière ou d'une autre, résoudre la plupart des problèmes de cette classe de problèmes. –
Vous pouvez définir un cookie avec un temps d'expiration court après la première demande sur votre site. Ensuite, vous pouvez simplement le vérifier et agrandir l'expiration du cookie.
Je crois qu'il parle d'un rafraîchissement de la page (par exemple, appuyez sur F5), pas une publication. – patmortech
Page.IsPostBack ne semble pas fonctionner. C'est toujours faux. Le post de retour ne vient pas d'un contrôle, c'est si vous actualisez votre navigateur – jumbojs
Vous ne devriez probablement pas faire quelque chose non-répétable sur une demande GET de toute façon - il ne devrait pas avoir d'effets secondaires, et devrait potentiellement être en mesure de être mis en cache - vous devriez utiliser un POST d'une certaine sorte pour effectuer vos actions non répétables, et alors vous seriez en mesure de vérifier votre IsPostBack correctement. –