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

Bagaimana untuk Mencegah Caching dalam Tindakan ASP.NET MVC?

DDD
Lepaskan: 2025-01-14 15:16:43
asal
275 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan