2016-01-13 86 views
0

我有一個解決方案,其中初始和默認(RouteConfig)頁面是'登錄/索引'。這個名稱讓我們明白的頁面用於用戶在系統上進行登錄。成功登錄後,重定向到主頁。ASP.NET MVC 4 - MapRoute配置刪除'/ Home'已存在默認配置

登錄頁面的網址顯示是http://localhost:7037/並在此之後,在「主頁」是http://localhost:7037/。如何配置到控制器首頁在行動索引不顯示「家」的鏈接?換句話說,要平等登錄。

我嘗試了一些替代方法,但我仍然沒有找到解決方案來處理這個特定情況。

感謝

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

     routes.LowercaseUrls = true; 

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

對不起什麼的到底是你的問題試試?您想在成功登錄時重定向到/ home? – ssilas777

+0

您無法從單個網址調用兩項操作。你可以調用家庭控制器或登錄控制器。 –

+0

@ ssilas777重定向到'Home'正在工作,但是,url顯示'/ home'。我需要刪除這個'/ home'。這個問題可能被混淆了,因爲我解釋了整個情況。 –

回答

0

讓我們來看看,如果我理解problemn

你有一個路線 「默認」 而已。

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional }, 
      namespaces: new [] { "Solution.UI.WEB.Controllers" } 
     ); 

你必須做的「主頁」上消失,網址是什麼改變CONTROLER「登陸」到「家」的「默認」。這將是這樣的:

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

所以,對裏面的HomeController.cs行動「索引」你驗證,如果用戶登錄,如果不這樣做,你redirectToAction(「指數」,「登錄」)。

希望有所幫助。

0

你可以通過在你的主頁查看JavaScript的replaceState

<script> 
    (function() { 
     var path = document.URL.match(/\/\w+(?=\?)/g)[0]; 
     window.history.replaceState('string', 'Some Title Text', path.replace('/','')); 
    })(); 
</script>