onactionexecution中的重定向不起作用

本文关键字:不起作用 重定向 onactionexecution | 更新日期: 2023-09-27 18:08:32

我试图重定向一个没有通过onactionexecution()进行身份验证的访问者,以便它覆盖我的整个控制器,但它几乎就像它被完全跳过一样。是否有可能从onactionexecution()中重定向?

  protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    base.OnActionExecuting(filterContext);
    if (SimpleAuth.isAuth())
    {
        RedirectToAction("Login", "Users");
    }
}

onactionexecution中的重定向不起作用

不能在过滤器内部使用RedirectToActionRedirectToActionController类中的一员。这就是为什么你可以在action方法中调用这个方法,action方法是继承自Controller类的类的成员。

但是,如果我们谈论的是过滤器,那么你必须将filterContext.Result设置为新的RedirectToRouteResult:

 filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(
                                new
                                {
                                    controller = "Users",
                                    action = "Login"
                                }));