2016-04-10 94 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 } 
     );