2012-10-27 89 views
2

我被困在試圖在Global.asax中創建另一條路由。MVC3路由問題

我正在使用MVC3爲我的網站創建動態頁面。當我輸入這個URL /Home/GetPages /關於%20Us

它拉出正確的控制器方法並提取數據。

不過,我想它修改這個 /關於%20US

下面是我添加到全局文件的路徑:

 routes.MapRoute(
      "Pages", // Route name 
      "{controller}/{action}/{PageName}", // URL with parameters 
      new { controller = "Home", action = "GetPages", PageName = UrlParameter.Optional } // Parameter defaults 
     ); 

任何幫助,將不勝感激。

回答

1

你靠得很近;您只需刪除PageName的默認條目並更改URL模板以刪除控制器和操作標識符。

routes.MapRoute(
    "Pages", // Route name 
    "{PageName}", // URL with parameters 
    new { controller = "Home", action = "GetPages" } // Parameter defaults 
); 

此外,確保這條線路後您的其他路線映射,否則會妨礙他們的工作(因爲只是除了根任何URL將觸發此航線)。

+0

這裏是我的總路線。 routes.MapRoute( 「Default」,//路由名稱 「{controller}/{action}/{id}」,//帶參數的網址 新{controller =「Home」,action =「Index」, id = UrlParameter.Optional} //參數默認值 ); routes.MapRoute( 「頁數」,//路線名稱 「{}頁面名稱」,// URL與參數 新{控制器= 「主頁」,動作= 「GETPAGES」} //參數默認 ); 但是,在嘗試localhost/About%20Us後,我仍然收到404錯誤。思考? –

0

我實際上扭轉了路線和工作。大多數頁面將在根上動態顯示,因此這應該可以正常工作。感謝您的幫助...