2013-04-05 52 views
12

我正在使用ASP.NET MVC 4,并且我的一些路由设置有问题。你能告诉我如何设置我的路由指向的网址行动如下:在ASP.NET MVC中使用和不使用控制器名称的路由4

  • “/”(或 “/启动”)=> PublicController.Start()
  • “/关于”=> PublicController.About()
  • “/我的编目”(或 “/我的编目/概述”)=> MyPageController.Summary()
  • “/我的编目/发票”=> MyPageController.Invoices()
  • “/我的页面/ Invoice/72“=> MyPageController.Invoice(int id)

这是“/ About”这个URL,它为我搞乱了一些东西,例如一个没有指定控制器的url。如果我让那个人工作,其他人确定控制器停止工作。我想我可以为“/ About”创建一个单独的控制器,但是如果我不必(我有更多的URL遵循该模式),我宁可不要。

回答

28

这应做到:

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

routes.MapRoute(
    name: "MyPageSummary", 
    url: "MyPage", 
    defaults: new { controller = "MyPage", action = "Summary" } 
); 

routes.MapRoute(
    name: "Default", 
    url: "{controller}/{action}/{id}", 
    defaults: new { controller = "Public", action = "Start", id = UrlParameter.Optional } 
); 
相关问题