Unterdrücken des Cachings in ASP.NET MVC-Aktionen mit Attributen
Herausforderung:
In ASP.NET MVC-Anwendungen müssen Sie häufig verhindern, dass bestimmte Aktionen Daten zwischenspeichern, um sicherzustellen, dass Sie immer die neuesten Informationen abrufen.
Lösung:
1. jQuery-Caching deaktivieren:
Um zu verhindern, dass jQuery AJAX-Antworten zwischenspeichert, verwenden Sie die Option cache: false
in Ihren AJAX-Einstellungen:
<code class="language-javascript">$.ajax({ cache: false, // ... rest of your AJAX configuration });</code>
2. Implementieren eines benutzerdefinierten NoCache
-Attributs:
Für eine präzisere Steuerung erstellen Sie ein benutzerdefiniertes Attribut, um das Caching innerhalb Ihrer MVC-Aktionen zu verwalten:
<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. Anwenden des NoCache
-Attributs:
Wenden Sie das Attribut auf den Controller oder einzelne Aktionen an, die kein Caching erfordern:
<code class="language-csharp">[NoCache] public class SomeController : Controller { // Controller actions }</code>
4. Globale Caching-Prävention:
Für einen standortweiten Ansatz wenden Sie das Attribut NoCache
auf Ihre Basis-Controller-Klasse an:
<code class="language-csharp">[NoCache] public class ControllerBase : Controller, IControllerBase { // Controller actions }</code>
5. Aktualisierung des Browser-Cache:
Denken Sie nach der Implementierung dieser Änderungen daran, eine vollständige Aktualisierung (Strg F5) in Ihrem Browser durchzuführen, um alle vorhandenen zwischengespeicherten Daten zu löschen und die aktualisierten Ergebnisse anzuzeigen.
Das obige ist der detaillierte Inhalt vonWie verhindert man Caching in ASP.NET MVC-Aktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!