2013-04-05 6 views
12

私はASP.NET MVC 4を使用していますが、私のルートの設定に問題があります。あなたは私の方法を次のようにアクションにURLを指すように私のルートを設定する方法を教えてもらえ:ASP.NET MVC 4のコントローラ名の有無によるルーティング

  • "/"(または "/スタート")=> PublicController.Start()
  • "/について" => PublicController.About()
  • "/マイページ"(または "/マイページ/要約")=> MyPageController.Summary()
  • "/マイページ/請求書" => MyPageController.Invoices()
  • 「/マイページ/請求書/ 72 "=> MyPageController.Invoice(int id)

「/ About」は、私のために物事を乱す、つまりコントローラを指定しないURLです。もし私がそれを働かせたら、コントローラーを指定する他の人は動作を停止します。私はちょうど別のコントローラを作成することができます "/約"私は推測するが、私はむしろ私は(私はそのパターンに続く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 } 
); 
関連する問題