Heim > Backend-Entwicklung > C++ > Wie verhindert man Caching in ASP.NET MVC-Aktionen?

Wie verhindert man Caching in ASP.NET MVC-Aktionen?

DDD
Freigeben: 2025-01-14 15:16:43
Original
275 Leute haben es durchsucht

How to Prevent Caching in ASP.NET MVC Actions?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage