2016-04-10 138 views
1

當前的路由配置對我來說是這樣的,我認爲這是一個默認路由配置在MVC

routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

當我寫

www.mypage.com 
www.mypage.com/home 

我在同一頁

如何我可以讓它成爲兩個單獨的頁面嗎?

www.mypage.com 

是主頁,並

www.mypage.com/home 

是另一個頁面

回答

1

www.mypage.com可以通過根控制器是處理器和其它所有路由將被默認路由處理。

routes.MapRoute(
     name: "Root", 
     url: "", 
     defaults: new {controller = "Root", action = "Index"} 
    ); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { action = "Index", id = UrlParameter.Optional } 
    ); 

明確的默認值允許您當前看到的行爲。

您仍然需要創建一個控制器來處理你的根網站調用

public class RootController : Controller {  
    public ActionResult Index() { 
     return View(); 
    } 
} 

而且不要忘記爲你的控制器相關的視圖。

+0

太棒了!它工作,但我現在在哪裏把www.mypage.com的視圖? – user3623300

+0

我可能需要編輯我的答案。您仍然需要爲您的根網址創建一個默認控制器 – Nkosi

0

無需創建新的控制器。你可以使用同一個家庭控制器。在Home Controller中,創建2個操作 - 默認和索引。在routeconfig中,使用 -

routes.MapRoute(
      name: "RootDef", 
      url: "", 
      defaults: new { controller = "Home", action = "Default", id = UrlParameter.Optional } 
     );  
routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     );