首頁 > 後端開發 > C++ > 如何防止 ASP.NET MVC 操作中的快取?

如何防止 ASP.NET MVC 操作中的快取?

DDD
發布: 2025-01-14 15:16:43
原創
275 人瀏覽過

How to Prevent Caching in ASP.NET MVC Actions?

使用屬性來抑制 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板