1

次のルートを定義しています。

routes.MapRoute(
            "Content Pages",
            "{action}",
            new { controller = "Pages", action = "Index" });

routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}/{title}",
             new { controller = "Home", action = "Index", 
                   id = UrlParameter.Optional, 
                   title = UrlParameter.Optional },
             new string[] { "MyCompany.Web.Controllers" });

「About」、「FAQ」など、次のようにアクセスしたいアクションを持つPagesという名前のコントローラーがあります:mywebsite.com/About

これは現在機能していますが、他のすべてのコントローラーがURLでデフォルトのアクションを指定することになります。Booksmywebsite.com/Books/Indexとしてレンダリングするための私のアクションリンク。

これを達成できるようにルートを変更するにはどうすればよいですか?

4

1 に答える 1

1

私はこのような他のすべてのコントローラーのためのより一般的なルートを持っているでしょう(しかしそれを以下のページルートの後に置いてください)

routes.MapRoute(
            "Content Pages",
            "{controller}",
            new { Home= "Home", action = "Index" });

そして、Pages 1を変更して、これら2つのアクションをより具体的にします(AboutまたはFaqコントローラーがない場合)。

routes.MapRoute("About Page", "about", new { controller = "Pages", action = "About" });
routes.MapRoute("FAQ Page", "faq", new { controller = "Pages", action = "FAQ" });
于 2012-12-17T16:56:32.557 に答える