我正在寻找一种方法来禁用整个ASP.NET MVC网站的浏览器缓存。
我发现了以下方法:
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
Response.Cache.SetNoStore();还有一个元标记方法(它不适用于我,因为一些MVC操作通过Ajax发送部分HTML/JSON,而没有head,meta标记)。
<meta http-equiv="PRAGMA" content="NO-CACHE">但我正在寻找一个简单的方法,以禁用整个网站的浏览器缓存。
发布于 2013-03-28 02:44:31
您可能希望禁用控制器(即HTML )呈现的所有页面的浏览器缓存,但是对资源(如脚本、样式表和图像)保持缓存。如果您使用MVC4+捆绑和缩小,您将希望保留脚本和样式表的默认缓存持续时间(很长的时间,因为根据对唯一URL的更改(而不是基于时间的更改),缓存将失效)。
在MVC4+中,若要在所有控制器中禁用浏览器缓存,但如果控制器未提供任何服务,则将其保留,请将其添加到FilterConfig.RegisterGlobalFilters中。
filters.Add(new DisableCache());定义DisableCache如下:
class DisableCache : ActionFilterAttribute
{
public override void OnResultExecuting(ResultExecutingContext filterContext)
{
filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
}
}https://stackoverflow.com/questions/1160105
复制相似问题