2009-12-30 7 views
2

J'ai une vue qui montre une liste d'éléments et lorsque vous cliquez sur l'un d'eux, il vous amène à la page des éléments. Je stocke également un indicateur "Vu" dans la base de données pour cet article. Maintenant, lorsque l'utilisateur clique en arrière, l'élément doit être stylisé différemment en raison de la modification du drapeau "Vu". Cependant, chaque fois que je clique, c'est comme avant que je clique sur l'élément, et je dois cliquer sur Actualiser pour voir l'état actuel de la page.Comment puis-je empêcher la mise en cache de certaines de mes vues dans ASP.NET MVC?

Comment puis-je empêcher cette page d'être mise en cache, donc quand un utilisateur cliquera dessus, il verra la dernière version de ce site, avec le nouveau style?

Répondre

2

Appel dans votre action de contrôleur:

Response.Cache.SetCacheability(HttpCacheability.NoCache) 

Cela empêchera le navigateur de la mise en cache de la page.

3

Marque l'action du contrôleur qui génère la liste avec OutputCacheAttribute et définit l'emplacement du cache sur none pour empêcher cette page d'être mise en cache sur le client. Cela devrait amener le client à demander de nouveau la page. Si l'utilisateur utilise le bouton de retour, cependant, je pense que la page est servie par le navigateur sans recharger quel que soit le cache. Au moins dans FF, je ne le vois pas demander à nouveau la page en utilisant Firebug.

[OutputCache(Location = OutputCacheLocation.None)] 
+0

Si elle n'est pas mise en cache par le navigateur, comment pourrait-elle la relancer sans recharger? –

+0

J'ai d'abord pensé que ça rechargerait aussi, mais ce n'est pas ce que je vois dans FF. – tvanfosson

Questions connexes