public class CacheFilterAttribute : ActionFilterAttribute { public int Duration { get; set; } public CacheFilterAttribute() { Duration = 60; } public override void OnActionExecuted(ActionExecutedContext filterContext) { if (Duration <= 0) return; HttpCachePolicyBase cache = filterContext.HttpContext.Response.Cache; TimeSpan cacheDuration = TimeSpan.FromSeconds(Duration); cache.SetCacheability(HttpCacheability.Public); cache.SetExpires(DateTime.Now.Add(cacheDuration)); cache.SetMaxAge(cacheDuration); cache.AppendCacheExtension("must-revalidate, proxy-revalidate"); } }
[CacheFilter(Duration = 60000)] [OutputCache(Duration = 1800)] //, VaryByParam = "*") public ActionResult Home() { }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)