2016-09-23 66 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檢查我更新。 –