2012-12-17 70 views
1

我有以下途徑定義:MVC 4定製路由

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" }); 

我有了像「關於」,「常見問題解答」等,我想訪問這樣一些動作控制器命名頁:mywebsite .com /關於

目前這個工作,但現在我所有的其他控制器最終指定他們在url中的默認操作。我的動作鏈接Books呈現爲mywebsite.com/Books/Index。

我該如何修改我的路線,以便我可以做到這一點?

回答

1

我會爲您的所有其他控制器這樣一個比較通用的路由(但把它放在頁面下方的路線後)

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

,改變你的網頁之一是這兩個動作更具體的(假設你沒有一個About或Faq控制器)。

routes.MapRoute("About Page", "about", new { controller = "Pages", action = "About" }); 
routes.MapRoute("FAQ Page", "faq", new { controller = "Pages", action = "FAQ" });