我的目标是拥有一个默认禁用缓存的全局NoCacheActionFilter
属性(在 中注册)。Global.asax.cs
然后我想在我的控制器所需的操作上添加更细粒度的控制,我想添加一个缓存属性,该属性应该覆盖在 global 中定义的属性NoCacheActionFilter
。
我的方法
在里面NoCacheActionFilter
public override void OnActionExcecuting(ActionExecutingContext filterContext)
{
//disable caching
HttpCachePolicyBase cache = filterContext.HttpContext.Response.Cache;
cache.SetCacheability(HttpCacheability.NoCache);
...
}
并在缓存属性中...
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
//add caching
...
cache.SetCacheability(HttpCacheability.Public);
...
}
注意 和 之间的区别OnActionExecuting
,OnActionExecuted
它们应该一个接一个地调用,因此应该授予顺序。
但是,显然这不起作用。有什么建议么??有种想念一些微不足道的感觉...