ASP.NET MVC comment désactiver la mise en cache automatique de l'option?
Comment désactiver automatique de la mise en cache du navigateur à partir de asp.Net application mvc?
Parce que je vais avoir un problème avec la mise en cache comme il met en cache tous les liens. Mais parfois, il redirigé vers l'INDEX par DÉFAUT de la PAGE automatiquement
qui stockée en cache et puis tout le temps que je peux cliquer sur ce lien, il va me diriger vers par DÉFAUT de la PAGE d'INDEX.
Si quelqu'un sait comment désactiver manuellement option de mise en cache à partir de ASP.NET MVC 4?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
OutputCacheAttribute
de serveur de contrôle et/ou la mise en cache du navigateur pour des actions spécifiques ou toutes les actions dans un contrôleur.Désactiver pour toutes les actions d'un contrôleur
Désactiver pour une action spécifique:
Si vous souhaitez appliquer une mise en cache par défaut de la stratégie à l'ensemble des actions dans tous les contrôleurs, vous pouvez ajouter un d'action mondial filtre par l'édition de votre
global.asax.cs
et à la recherche pour leRegisterGlobalFilters
méthode. Cette méthode est ajoutée à la valeur par défaut application MVC modèle de projet.Cela va faire appliquer la
OutputCacheAttribute
spécifié ci-dessus pour chaque action, ce qui permettra de désactiver le navigateur et le serveur de mise en cache. Vous devriez toujours être en mesure de remplacer cette "no-cache" en ajoutantOutputCacheAttribute
à des actions spécifiques et des contrôleurs.HackedByChinese manque le point. Il attribuait à cache du serveur avec le client en cache. OutputCacheAttribute contrôles de cache du serveur (IIS http.sys cache), pas de navigateurs (clients) de cache.
Je vous donne une très petite partie de mon code. Utiliser à bon escient.
Utilisation:
L'utiliser à bon escient car il désactive le cache du client. La seule cache pas désactivé est le bouton "retour" du cache du navigateur. Mais paraît-il n'y a vraiment aucun moyen de la contourner. Peut-être seulement par l'utilisation de javascript pour la détecter et la force de la page ou des zones de rafraîchissement.
Cache-Control: public, no-store, max-age=0 Expires: Mon, 22 Oct 2012 20:19:26 GMT Last-Modified: Mon, 22 Oct 2012 20:19:26 GMT
). Par conséquent, il permettra d'éviter le navigateur ET le serveur cache. Je sais que c'est curieux qu'il définitpublic
en plus de no-store, mais l'effet net est no-store et immédiate de l'expiration.Cache-Control: public, no-cache="Set-Cookie", no-store, max-age=0
&Expires
+Vary
ensemble. Cette solution constitueCache-Control: no-cache, proxy-revalidate, private, no-cache=Set-Cookie
,Expires=-1
etPragma=no-cache
. Depuis ils ont tous les deux fonctionnent très bien dans le contrôle des caches du navigateur, vous ne savez pas ce qu'est la question.Nous pouvons mettre en cache dans le profil Web.fichier de configuration au lieu de mettre en cache les valeurs individuellement dans des pages pour éviter de code redondant. On peut consulter le profil à l'aide de la CacheProfile propriété de la OutputCache attribut. Ce profil de cache sera appliqué à toutes les pages sauf la page/méthode remplace ces paramètres.
Et si vous souhaitez désactiver la mise en cache de votre action ou de la manette, vous pouvez remplacer le cache de configuration des paramètres par la décoration de l'action méthode comme indiqué ci-dessous:
Espère que c'est clair et est utile pour vous.
Si vous voulez empêcher la mise en cache du navigateur, vous pouvez utiliser ce code de ShareFunction
Sur la page de la solution ,dans votre mise en page :
<meta http-equiv="Cache-Control" content="non-cache, no-store, must-revalidate">
meta
les balises ci-dessus, mais rien ne fonctionne. Vous commentaire doit être inclus à la réponse.De faire ma réponse visible à tous, j'ai déplacer mon commentaire de réponse à cette question.
Cela fonctionne dans tous les navigateurs (IE, Firefox et Chrome ainsi).
Heureux d'entendre ma réponse a travaillé pour vous @Joseph Katzman