一个拦截器 有 OnActionExecuting 和OnActionExecuted 两个方法,互相能共用一个变量吗 返回

C#论坛 老数据
2 1461

public class NeedCacheAttribute : ActionFilterAttribute, IActionFilter
{
  ... ...
  
private string cacheKey = "";
  public override void OnActionExecuting(ActionExecutingContext context)
        {
         var request = context.HttpContext.Request;
            string path = request.Path;
           cacheKey=path;
        }
         public   override void OnActionExecuted(ActionExecutedContext context)
        {
            CacheHelper.SetSliding(cacheKey, contentBytes, this.ServerCacheExpiration);
        }
  }

然后我在控制器里需要缓存的接口(方法)加上  [NeedCache]

但发现,如果一个页面同是调用多个接口,

OnActionExecuting里的cacheKey 跟OnActionExecuted的 cacheKey 并不一至, 连接控制器里的一个接口测试没问题,同时连接多个接口发现不一至,有时是上一个的路径,不知什么问题,请高人指点!

 

 

未命名-1.png

热忱回答2