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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 如何关闭我的整个ASP.NET MVC 3网站的缓存?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
就像问题所在,我想知道是否可以关闭所有控制器上的缓存和整个站点的操作.谢谢!

解决方法

创建全局操作过滤器并覆盖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,所以这将隐含地应用于所有控制器和所有操作.

猜你在找的asp.Net相关文章