19

我正在使用 ASP.NET MVC 4,我在设置路由时遇到了一些问题。你能告诉我如何设置我的路线以将 url 指向操作,如下所示:

  • “/”(或“/Start”)=> PublicController.Start()
  • “/关于” => PublicController.About()
  • “/MyPage”(或“/MyPage/Summary”)=> MyPageController.Summary()
  • "/MyPage/Invoices" => MyPageController.Invoices()
  • "/MyPage/Invoice/72" => MyPageController.Invoice(int id)

是 url "/About" 让我搞砸了,即没有指定控制器的 url。如果我让那个工作,其他指定控制器的工作将停止工作。我猜我可以为“/About”创建一个单独的控制器,但如果我不需要的话,我宁愿不要(我有更多遵循该模式的网址)。

4

1 回答 1

35

这应该这样做:

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 }
);
于 2013-04-05T14:27:16.417 回答