一个拦截器 有 OnActionExecuting 和OnActionExecuted 两个方法,互相能共用一个变量吗 返回
C#论坛
老数据
2
1461

悬赏:0 飞吻
如
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 并不一至, 连接控制器里的一个接口测试没问题,同时连接多个接口发现不一至,有时是上一个的路径,不知什么问题,请高人指点!
热忱回答(2)
-
fate sta VIP0
2022/3/16用AsyncLocal实现共享
0 回复 -
goodgame36 VIP0
2022/3/16@fate sta: 果然可以,太感谢了!
0 回复