Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mencegah Caching dalam Tindakan ASP.NET MVC?

Bagaimana untuk Mencegah Caching dalam Tindakan ASP.NET MVC?

DDD
DDDasal
2025-01-14 15:16:43286semak imbas

How to Prevent Caching in ASP.NET MVC Actions?

Menindas Caching dalam ASP.NET MVC Actions dengan Atribut

Cabaran:

Dalam aplikasi ASP.NET MVC, anda selalunya perlu menghalang tindakan tertentu daripada menyimpan data dalam cache untuk memastikan anda sentiasa mendapatkan maklumat terkini.

Penyelesaian:

1. Melumpuhkan Caching jQuery:

Untuk menghentikan jQuery daripada menyimpan cache respons AJAX, gunakan pilihan cache: false dalam tetapan AJAX anda:

<code class="language-javascript">$.ajax({
    cache: false,
    // ... rest of your AJAX configuration
});</code>

2. Melaksanakan Atribut NoCache Tersuai:

Untuk kawalan yang lebih tepat, buat atribut tersuai untuk mengurus caching dalam tindakan MVC anda:

<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. Mengaplikasikan NoCache Atribut:

Gunakan atribut pada pengawal atau tindakan individu yang tidak memerlukan caching:

<code class="language-csharp">[NoCache]
public class SomeController : Controller
{
    // Controller actions
}</code>

4. Pencegahan Caching Global:

Untuk pendekatan seluruh tapak, gunakan atribut NoCache pada kelas pengawal asas anda:

<code class="language-csharp">[NoCache]
public class ControllerBase : Controller, IControllerBase
{
    // Controller actions
}</code>

5. Muat Semula Cache Penyemak Imbas:

Selepas melaksanakan perubahan ini, ingat untuk melakukan muat semula keras (Ctrl F5) dalam penyemak imbas anda untuk mengosongkan sebarang data cache sedia ada dan melihat hasil yang dikemas kini.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Caching dalam Tindakan ASP.NET MVC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn