2009-05-07 9 views
14

J'ai un site Web asp.net qui utilise des panneaux de mise à jour sur la page que je ne peux pas recharger depuis le serveur. J'ai ceci pour désactiver le cache de page sur la page principale.Désactiver le cache de page pour forcer le chargement de la page avec le bouton de retour du navigateur

 Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1)) 
    Response.Cache.SetValidUntilExpires(False) 
    Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches) 
    Response.Cache.SetCacheability(HttpCacheability.NoCache) 
    Response.Cache.SetNoStore() 

Lorsque je clique sur le bouton de retour du navigateur pour retourner à la page, la page a expiré. Les autres pages sur mon site fonctionnent et appellent le chargement de la page, la seule solution que j'ai trouvé mais que je ne peux pas utiliser est de faire toute la page dans un panneau de mise à jour, mais je ne peux pas le faire. ne fonctionne pas avec ajax. Si quelqu'un peut aider je l'apprécierais profondément.

+1

Le message de page expiré du navigateur signifie que certaines données de publication ont été envoyées. Certains navigateurs demandent à l'utilisateur, s'ils veulent le renvoyer, certains ne le demandent pas. – jor

Répondre

0

Il suffit d'ajouter dans votre fichier de vue en partie en-tête:

<head> 
<script language="JavaScript"> 
<!-- 
javascript:window.history.forward(1); 
//--> 
</script> 
</head> 

intérieur balise body ajouter ceci:

<body onUnload="OperaReload()"> 
<input type="hidden" id="refreshed" value="no"> 
0

Pour recharger la page avec JavaScript utiliser les éléments suivants:

window.location.replace(window.location.pathname); 
1

Il ne s'agit pas d'un problème de cache du navigateur. c'est un postback. Vous devez implémenter le modèle Post/Redirect/Get afin d'éviter le message "Souhaitez-vous soumettre de nouveau?"/"Date expirée".

http://en.wikipedia.org/wiki/Post/Redirect/Get

L'exemple classique pour cette chose est quand une page Web a un bouton de sauvegarde qui insérer quelque chose dans une base de données. Le bouton "Enregistrer" est cliqué -> une publication se produit -> le code insère une ligne dans une table -> l'utilisateur actualise la page (F5) -> la publication se produit à nouveau -> le code insère à nouveau la même ligne.

Pour éviter la double insertion dans l'exemple précédent, vous devez rediriger lorsque le bouton "Enregistrer" est enfoncé et seulement ensuite, exécutez l'insertion.

Questions connexes