OutputCache是​​否缓存ActionFilter的属性?

时间:2015-09-26 09:00:40

标签: c# asp.net asp.net-mvc outputcache action-filter

我在某个操作上使用donut output caching,该操作使用此操作过滤器:

public sealed class DoStuffAttribute : ActionFilterAttribute {


  private bool HasRun = false;


  public override void OnActionExecuting(ActionExecutingContext context) {
    HasRun = true;
  }
  public override void OnActionExecuted(ActionExecutingContext context) {
    HasRun = true;
  }


  public override void OnResultExecuting(ResultExecutingContext context) {
    if (HasRun) doSomething();
  }
  public override void OnResultExecuted(ResultExecutedContext context) {
    if (HasRun) doSomething();
  }


}

对于第一个请求,设置了HasRun,然后缓存了操作的结果。

对于以下请求,OnActionExecutingOnActionExecuted未运行,因为操作已缓存。但是,在运行的OnResultExecutingOnResultExecuted方法中,HasRun标志为真!

OutputCache不仅会缓存结果,还会缓存操作状态过滤器吗?如果没有,这里发生了什么?

0 个答案:

没有答案