Suppression de la mise en cache dans les actions ASP.NET MVC avec attributs
Défi :
Dans les applications ASP.NET MVC, vous devez souvent empêcher des actions spécifiques de mettre en cache les données pour vous assurer de toujours récupérer les informations les plus récentes.
Solution :
1. Désactivation de la mise en cache jQuery :
Pour empêcher jQuery de mettre en cache les réponses AJAX, utilisez l'option cache: false
dans vos paramètres AJAX :
<code class="language-javascript">$.ajax({ cache: false, // ... rest of your AJAX configuration });</code>
2. Implémentation d'un NoCache
attribut personnalisé :
Pour un contrôle plus précis, créez un attribut personnalisé pour gérer la mise en cache au sein de vos actions MVC :
<code class="language-csharp">[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)] public sealed class NoCacheAttribute : ActionFilterAttribute { public override void OnResultExecuting(ResultExecutingContext filterContext) { // Configure HTTP headers to disable caching 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); } }</code>
3. Application de l'attribut NoCache
:
Appliquer l'attribut au contrôleur ou à des actions individuelles ne nécessitant aucune mise en cache :
<code class="language-csharp">[NoCache] public class SomeController : Controller { // Controller actions }</code>
4. Prévention de la mise en cache globale :
Pour une approche à l'échelle du site, appliquez l'attribut NoCache
à votre classe de contrôleur de base :
<code class="language-csharp">[NoCache] public class ControllerBase : Controller, IControllerBase { // Controller actions }</code>
5. Actualisation du cache du navigateur :
Après avoir mis en œuvre ces modifications, n'oubliez pas d'effectuer une actualisation matérielle (Ctrl F5) dans votre navigateur pour effacer toutes les données mises en cache existantes et voir les résultats mis à jour.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!