2011-05-16 62 views

回答

11

您可以使用自定義沒有緩存行爲過濾:

public class NoCacheAttribute : ActionFilterAttribute 
{ 
    public override void OnResultExecuting(ResultExecutingContext filterContext) 
    { 
     var cache = filterContext.HttpContext.Response.Cache; 
     cache.SetExpires(DateTime.UtcNow.AddDays(-1)); 
     cache.SetValidUntilExpires(false); 
     cache.SetRevalidation(HttpCacheRevalidation.AllCaches); 
     cache.SetCacheability(HttpCacheability.NoCache); 
     cache.SetNoStore(); 
     base.OnResultExecuting(filterContext); 
    } 
} 

然後裝飾與此屬性的任何控制器/動作,你不希望緩存由客戶端瀏覽器。

+0

如何處理JS文件在視圖中引用的CSS文件的操作?他們會每次都加載,如果我把這個行動? – 2013-01-24 11:32:20

+0

靜態資源由IIS直接提供。他們甚至沒有達到你的應用程序代碼。 – 2013-01-24 11:33:23

+0

這很完美。感謝您的快速回復。 – 2013-01-24 11:41:59

相關問題