2010-03-01 100 views
2

任何人都可以告訴我什麼是「默認」路由的實際URL的語法?在控制器中獲取「Default」Route Url

我想這樣做:

string url = RouteTable.Routes["Default"].ToString(); 
//(even though that code is completely wrong) 

,這樣我可以有可用路由的URL值一起工作。

到目前爲止,我一直在嘗試.GetVirtualPath()方法,但它只返回當前控制器的路由數據。

感謝

戴夫

+0

控制器通常不應該知道/護理關於網址。你想做什麼? – 2010-03-01 15:16:59

回答

9

路由可以匹配任何數量的URL。所以一條路線沒有網址。要從路線中獲取網址,您必須爲其提供您需要該網址的路線數據。要做到這一點,只需在Url屬性Url.RouteUrl()上使用RouteUrl()方法即可。

更新

如果你想將生成,如果你使用它的默認值提供的路線,你可以做這樣的事情的網址:

var url = Url.RouteUrl("Default", ((Route)RouteTable.Routes["Default"]).Defaults); 
+0

默認路由具有控制器和操作的默認值,這是我想他想要的(但我仍然想知道爲什麼!)。 – 2010-03-01 15:25:02

+0

@Mattias,謝謝,但是這段代碼返回了我已經在的路線。我正在尋找的是獲得「默認」網址(即RedirectToRoute(「默認」)將重定向到的等效URL。@Craig,這是一個很長的故事(可能是因爲我做錯了!我希望能夠返回默認路由以讓jQuery執行重定向 – DaveDev 2010-03-01 15:34:44

+0

它不返回已經存在的路由或url,它使用當前路由的路由值並將它們提供給您指定的路由,在這種情況下,「默認」,你恰好已經使用該路線爲您當前的網址。請檢查我的更新答案,如何從路線中獲取默認值 – 2010-03-01 15:56:30