Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Mencegah Caching dalam Tindakan ASP.NET MVC Tertentu Menggunakan Atribut?

Bagaimanakah Saya Boleh Mencegah Caching dalam Tindakan ASP.NET MVC Tertentu Menggunakan Atribut?

Barbara Streisand
Lepaskan: 2025-01-14 15:22:44
asal
550 orang telah melayarinya

How Can I Prevent Caching in Specific ASP.NET MVC Actions Using Attributes?

Mengelakkan Cache dalam Tindakan MVC ASP.NET dengan Atribut Tersuai

Dalam ASP.NET MVC, melumpuhkan caching secara terpilih untuk tindakan tertentu adalah penting untuk memastikan ketepatan data, terutamanya apabila berurusan dengan maklumat dinamik atau sensitif. Artikel ini menunjukkan cara membuat dan menggunakan atribut tersuai untuk mencapainya.

Atribut Tersuai untuk Kawalan Cache

Untuk mengelakkan caching berdasarkan setiap tindakan, kami boleh mencipta atribut tersuai yang mengatasi gelagat caching lalai. Di bawah ialah contoh praktikal:

<code class="language-csharp">[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public sealed class NoCacheAttribute : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        // Aggressively disable caching at multiple levels
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.Now.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

Melaksanakan Atribut NoCache

Menggunakan atribut NoCache ini pada kaedah tindakan secara berkesan melumpuhkan caching untuk tindakan khusus tersebut. Contohnya:

<code class="language-csharp">[NoCache]
public ActionResult GetRealTimeData()
{
    // Action implementation...
}</code>
Salin selepas log masuk

Peringkat Pengawal atau Pencegahan Cache Seluruh Aplikasi

Atribut NoCache juga boleh digunakan pada peringkat pengawal untuk melumpuhkan caching untuk semua tindakan dalam pengawal itu:

<code class="language-csharp">[NoCache]
public class MyDataController : Controller
{
    public ActionResult GetData()
    {
        // Action implementation...
    }
}</code>
Salin selepas log masuk

Pendekatan Sisi Pelanggan Pelengkap

Walaupun atribut bahagian pelayan adalah penting, mengukuhkan ini dengan langkah pihak pelanggan meningkatkan keberkesanan pencegahan cache. Dalam jQuery, ini boleh dilakukan seperti berikut:

<code class="language-javascript">$.ajax({
    cache: false,
    // Other AJAX settings...
});</code>
Salin selepas log masuk

Dengan menggabungkan atribut sisi pelayan dan konfigurasi sisi klien, anda memastikan pencegahan cache yang mantap dalam aplikasi ASP.NET MVC anda, menjamin penghantaran data yang baharu dan tepat kepada pengguna anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah Caching dalam Tindakan ASP.NET MVC Tertentu Menggunakan Atribut?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan