gpt4 book ai didi

asp.net-mvc - 在 ActionFilterAttribute 中告知这是否是重定向

转载 作者:行者123 更新时间:2023-12-05 01:17:21 30 4
gpt4 key购买 nike

我正在尝试创建一个每个请求只运行一次的 ActionFilterAttribute,所以我正在做这样的事情。

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.IsChildAction)
return;

// More stuff here
}

我可能需要检查 filterContext.HttpContext.Request.IsAjaxRequest() 在某些情况下也是错误的,但我真正的问题是如何判断它不是重定向。当操作 X 重定向到操作 Y 时,过滤器将运行两次,一次用于 X,一次用于 Y( IsChildAction 对于 Y 为 false。

我试图在 filterContext.HttpContext.Items 上保存一些键,这将告诉我过滤器已经运行,但这些项目不在 X

关于如何从 ActionExecutingContext 判断这是一个重定向,我有什么想法吗?

最佳答案

我相信您正在寻找这样的东西:

Using an MVC Action Filter to catch redirects in Ajax requests and return a JsonResult

可以判断是重定向结果还是重定向到路由结果

var redirectResult = filterContext.Result as RedirectResult;
if (filterContext.Result is RedirectResult)
{
// It was a RedirectResult => do something
}
else if (filterContext.Result is RedirectToRouteResult)
{
// It was a RedirectToRouteResult => do something

}

关于asp.net-mvc - 在 ActionFilterAttribute 中告知这是否是重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14830070/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com