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>
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>
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>
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>
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!