2016-09-23 68 views
1

我试图重定向一个未通过OnactionExecuting()进行身份验证的访问者,以便它覆盖我的整个控制器,但它几乎就像它被完全跳过一样。是否可以在OnActionExecuting()内重定向?在OnAction中重定向执行不起作用

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 

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

回答

3

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

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

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

虽然现在重定向,重定向到/不/用户/登录 – mauzilla

+0

@mauzilla检查我更新。 –