【问题标题】:load page freshly and not from cache全新加载页面,而不是从缓存中加载
【发布时间】:2011-05-16 12:44:04
【问题描述】:

有没有办法强制页面不从缓存中加载?每次加载页面时,它都会从服务器加载。 我正在使用 asp.net MVC 3。

【问题讨论】:

    标签: asp.net-mvc-3 browser-cache


    【解决方案1】:

    您可以使用自定义的无缓存操作过滤器:

    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);
        }
    }
    

    然后使用此属性装饰您不希望被客户端浏览器缓存的任何控制器/动作。

    【讨论】:

    • 视图中引用的 JS 文件 CSS 文件如何?如果我把它放在一个动作上,他们每次都会加载吗?
    • 静态资源直接由 IIS 提供服务。他们甚至没有到达您的应用程序代码。
    • 太完美了。感谢您的快速回复。
    猜你喜欢
    • 2011-11-14
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    相关资源
    最近更新 更多