我正在尝试创建一个每个请求只运行一次的 ActionFilterAttribute,所以我正在做这样的事情。
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.IsChildAction)
return;
// More stuff here
}
在某些情况下,我可能需要检查这filterContext.HttpContext.Request.IsAjaxRequest()
也是错误的,但我真正的问题是如何判断它不是重定向。当 actionX
重定向到 actionY
时,过滤器运行两次 forX
和一次 for Y
(对于IsChildAction
是 false Y
)。
我试图在 上保存一些键filterContext.HttpContext.Items
,这将告诉我过滤器已经运行,但这些项目不在 和 之间X
共享Y
。
有什么想法可以告诉我ActionExecutingContext
这是重定向吗?