簡體   English   中英

ASP.NET MVC2和瀏覽器緩存

[英]ASP.NET MVC2 and Browser Caching

我有一個Web應用程序,通過ajax獲取大量內容。 例如,當用戶編輯某些數據時,瀏覽器將使用ajax帖子發送更改,然后執行ajax獲取新內容並使用該內容替換頁面上的現有div。 這只是找到MVC1,但在MVC2中我會得到不一致的結果。

我發現MVC1默認包含設置為當前時間的響應頭中的Expires項,但在MVC2中,Expires頭丟失了。 這是一些問題,一些瀏覽器(IE8)實際上使用緩存版本的ajax get而不是新版本。

為了解決這個問題,我創建了一個簡單的ActionFilterAttribute,它將響應緩存設置為NoCache(見下文),這是有效的,但用這個屬性裝飾每個控制器似乎很狡猾。 是否有一種全局方式為每個控制器設置此功能?

這是MVC2中的一個錯誤,它真的應該在每個ActionResult / view / page上設置過期嗎? 難道大多數MVC程序都不處理數據輸入,而過時的數據是非常糟糕的嗎?

謝謝


public class ResponseNoCachingAttribute : ActionFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        base.OnResultExecuted(filterContext);

        filterContext.HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
    }
}

您是否嘗試將以下屬性添加到控制器中?

[OutputCache(Location = OutputCacheLocation.None)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM