加入收藏 | 设为首页 | 会员中心 | 我要投稿 莱芜站长网 (https://www.0634zz.com/)- 云连接、建站、智能边缘云、设备管理、大数据!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 如何关闭我的整个ASP.NET MVC 3网站的缓存?

发布时间:2020-12-05 05:01:26 所属栏目:asp.Net 来源:互联网
导读:就像问题所在,我想知道是否可以关闭所有控制器上的缓存和整个站点的操作.谢谢! 创建全局操作过滤器并覆盖OnResultExecuting(): public class DisableCache : ActionFilterAttribute{ public override void OnResultExecuting(ResultExecutingContext filter

就像问题所在,我想知道是否可以关闭所有控制器上的缓存和整个站点的操作.谢谢!

解决方法

创建全局操作过滤器并覆盖OnResultExecuting():
public class DisableCache : ActionFilterAttribute
{
    public override void OnResultExecuting(ResultExecutingContext filterContext)
    {
        filterContext.HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
        filterContext.HttpContext.Response.Cache.SetValidUntilExpires(false);
        filterContext.HttpContext.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
        filterContext.HttpContext.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        filterContext.HttpContext.Response.Cache.SetNoStore();
    }
}

然后在你的global.asax中注册,像这样:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new DisableCache());
    }

总而言之,这样做是创建一个Global Action Filter,所以这将隐含地应用于所有控制器和所有操作.

(编辑:莱芜站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读