2013-10-25 24 views
1

上午使用MVC4構建CMS。我對MVC的經驗是有限的,並試圖創建一個可以處理CMS創建的頁面的MapRoute。對於頁面的URL會沿着website.com/AboutMVC4 MapRoute for CMS

行爲了解決這個問題我想出了以下

 routes.MapRoute(
      name: "Default", 
      url: "{p}", 
      defaults: new { controller = "Home", action = "Index", p = UrlParameter.Optional } 
     ); 

這工作正常根級頁,但如果我想子頁面一樣website.com/About/OurTeam

我得到了404。理想情況下,我想只是可以傳遞.com字符串之後的整個url作爲字符串並在控制器中對其進行排序或分割級別作爲參數數組並將其作爲'p'傳遞。

希望是有道理的。有任何想法嗎?

回答

2

您可以使用:

routes.MapRoute(
      name: "Default", 
      url: "{*p}", 
      defaults: new { controller = "Home", action = "Index", p = UrlParameter.Optional } 
     ); 

星號表示,這是一個包羅萬象的路線。請記住,這些路線非常貪婪,請確保它保持在任何特定路線之下。

您也可以爲此路由添加路由約束,以確定該數據庫中是否存在頁面或其他內容。有關更多信息,請參閱this post

+0

這很棒,謝謝。不能相信我如此親密,只缺少1個字符。只要stackoverflow讓我回答,就會標記爲答案。謝謝 – HuwD

+0

@HuwD不客氣,很高興我能幫上忙。 MVC包含很多小技巧(實際上是慣例),如果你瞭解它們,它們是非常棒的! –