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");
}
}
不能在过滤器内部使用RedirectToAction
。RedirectToAction
是Controller
类中的一员。这就是为什么你可以在action方法中调用这个方法,action方法是继承自Controller
类的类的成员。
但是,如果我们谈论的是过滤器,那么你必须将filterContext.Result
设置为新的RedirectToRouteResult
:
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(
new
{
controller = "Users",
action = "Login"
}));