使用屬性來抑制 ASP.NET MVC 操作中的快取
挑戰:
在 ASP.NET MVC 應用程式中,您經常需要封鎖特定操作快取數據,以確保您始終檢索到最新資訊。
解:
1。停用 jQuery 快取:
要阻止 jQuery 快取 AJAX 回應,請在 AJAX 設定中使用 cache: false
選項:
<code class="language-javascript">$.ajax({ cache: false, // ... rest of your AJAX configuration });</code>
2。實作自訂 NoCache
屬性:
為了更精確的控制,請建立自訂屬性來管理 MVC 操作中的快取:
<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。應用 NoCache
屬性:
將屬性應用於不需要快取的控制器或單一操作:
<code class="language-csharp">[NoCache] public class SomeController : Controller { // Controller actions }</code>
4。全域快取預防:
對於網站範圍的方法,將 NoCache
屬性套用至您的基本控制器類別:
<code class="language-csharp">[NoCache] public class ControllerBase : Controller, IControllerBase { // Controller actions }</code>
5。瀏覽器快取刷新:
實施這些變更後,請記住在瀏覽器中執行硬刷新 (Ctrl F5) 以清除任何現有的快取資料並查看更新的結果。
以上是如何防止 ASP.NET MVC 操作中的快取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!