"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment empêcher la mise en cache des actions ASP.NET MVC?

Comment empêcher la mise en cache des actions ASP.NET MVC?

Publié le 2025-04-11
Parcourir:688

How Do I Prevent Caching for Specific ASP.NET MVC Actions?

Contrôle de la mise en cache dans ASP.net MVC Actions

Le mécanisme de mise en cache de ASP.NET MVC augmente considérablement les performances. Cependant, des scénarios existent lorsque la désactivation de la mise en cache pour des actions particulières est essentielle pour garantir la récupération de nouvelles données. Ce guide détaille les méthodes pour empêcher la mise en cache dans des actions MVC ASP.NET spécifiques à l'aide d'attributs personnalisés.

Création d'un attribut nocache

Pour créer un attribut personnalisé qui désactive la mise en cache, nous levons le [attributUsage] et [actionFilterAttribute] Attributs. Voici un exemple:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        filterContext.HttpContext.Response.Cache.SetNoStore();

        base.OnResultExecuting(filterContext);
    }
}

Appliquer [Nocache] à un contrôleur ou une méthode d'action désactive la mise en cache pour cet élément spécifique. Alternativement, hériter d'un contrôleur de base et le décorer avec [nocache] empêche la mise en cache sur tous les contrôleurs hérités.

jQuery's Cache Control

Lors de l'utilisation de jQuery pour la récupération de données, définit explicitement cache: false dans le $. Ajax () méthode empêche le caching:

$.ajax({
    cache: false,
    // ... other AJAX settings
});

Application de rafraîchissement du navigateur

Après la mise en œuvre de mesures anti-caches, un "rafraîchissement dur" (CTRL F5) est crucial pour s'assurer que le navigateur ne s'appuie pas sur des données mises en cache. Un rafraîchissement standard (F5) peut ne pas toujours récupérer les dernières informations si le navigateur conserve la version mise en cache.

Résumé

Utilisation du nocacheAttribute ou définit cache: false Dans jQuery empêche efficacement la mise en cache pour les actions MVC ASP.NET ciblées, garantissant que le navigateur reçoit des données actuelles. La maîtrise du contrôle de mise en cache est la clé pour éviter les données périmées ayant un impact sur l'expérience utilisateur et la logique d'application.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3