因爲你打算刪除網址的{控制器}元素,你可能需要獲得更具體一點與其他的網址,如:
routes.MapRoute("MyOtherControllerRoute", "Account/{action}", new { controller = "Account", action = "Index" });
routes.MapRoute("MyDefaultRoute", "{action}", new { controller = "Home", action = "Index" });
當路由表進行詢問,如果使用的網址如www.mysite.com/Account
,它會匹配第一條路由,因爲我們已經詳細說明了用於匹配url的模式。如果我們然後執行類似www.mysite.com/DoSomething
的操作,它將使用我們上次選擇的默認路由,嘗試調用HomeController類型的DoSomething操作。
我注意到的一點是,很多MVC開發者似乎認爲url是嚴格的{something}/{something}/{something}
,而它基本上可以是任何你喜歡的東西,例如,我可以有一條路線:www.mysite.com/my-weird-and-wonderful-url
我可以專門映射:
routes.MapRoute("Somewhere", "my-weird-and-wonderful-url", new { controller = "Whatever", action = "Whenever" });
希望有所幫助。
感謝馬修 - 工作得很好。提供了他們的見解 - 我很高興迅速提供了一個解決方案。 – Neurothustra 2010-07-28 15:44:04