2017-08-07 79 views
0

我想在MVC中使用區域。如果登錄成功,您將被重定向到的HomeController,並在Admin區域中。我想要做的是將您重定向到默認區域的HomeControllerIndex,但是當我註銷時,我留在Admin區域。如何重定向回管理區域?MVC沒有區域的默認根目錄

登錄內部NAV

 <ul class="nav masthead-nav"> 
      <li class="active"><a href="@Url.Action("Index", "Home")">Domů</a></li> 
      <li><a href="@Url.Action("About", "Home")">O nás</a></li> 
      <li><a href="@Url.Action("Index", "Login", new {area = "Admin" })">Vypis lyží/snowboardů</a></li> 
    </ul> 

登錄控制器動作註冊/ Signout

public ActionResult SignIn(string login, string password) 
     { 
      if (Membership.ValidateUser(login, password)) 
      { 
       FormsAuthentication.SetAuthCookie(login, false); 
       return RedirectToAction("Index", "Home"); 
      } 

      TempData["error"] = "Login nebo heslo není správné"; 
      return RedirectToAction("Index", "Login"); 
     } 

     public ActionResult Logout() 
     { 
      FormsAuthentication.SignOut(); 
      Session.Clear(); 

      return RedirectToAction("Index", "Home"); 
     } 

路由配置

public class RouteConfig 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
       namespaces: new [] { "pujcovna_lyze.Controllers" } 
      ); 
     } 
    } 
+0

嘿,你的項目好運氣!你有沒有針對我們的具體問題或...? – GrumpyCrouton

+0

@GrumpyCrouton你是什麼意思?我認爲從文中可以明顯看出,但是我已經添加了我的問題。 –

回答

2

我已通過在Logout()操作中添加new { area = "" }參數解決了該問題。

行動,現在看起來是這樣的:

public ActionResult Logout() 
     { 
      FormsAuthentication.SignOut(); 
      Session.Clear(); 

      return RedirectToAction("Index", "Home", new { area = "" }); 
     }