首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用整个ASP.NET网站的浏览器缓存

禁用整个ASP.NET网站的浏览器缓存
EN

Stack Overflow用户
提问于 2009-07-21 15:52:12
回答 8查看 138.6K关注 0票数 202

我正在寻找一种方法来禁用整个ASP.NET MVC网站的浏览器缓存。

我发现了以下方法:

代码语言:javascript
运行
复制
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Response.Cache.SetNoStore();

还有一个元标记方法(它不适用于我,因为一些MVC操作通过Ajax发送部分HTML/JSON,而没有head,meta标记)。

代码语言:javascript
运行
复制
<meta http-equiv="PRAGMA" content="NO-CACHE">

但我正在寻找一个简单的方法,以禁用整个网站的浏览器缓存。

EN

Stack Overflow用户

发布于 2013-03-28 02:44:31

您可能希望禁用控制器(即HTML )呈现的所有页面的浏览器缓存,但是资源(如脚本、样式表和图像)保持缓存。如果您使用MVC4+捆绑和缩小,您将希望保留脚本和样式表的默认缓存持续时间(很长的时间,因为根据对唯一URL的更改(而不是基于时间的更改),缓存将失效)。

在MVC4+中,若要在所有控制器中禁用浏览器缓存,但如果控制器未提供任何服务,则将其保留,请将其添加到FilterConfig.RegisterGlobalFilters中。

代码语言:javascript
运行
复制
filters.Add(new DisableCache());

定义DisableCache如下:

代码语言:javascript
运行
复制
class DisableCache : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    }
}
票数 10
EN
查看全部 8 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1160105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档