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!