任何人都可以告訴我什麼是「默認」路由的實際URL的語法?在控制器中獲取「Default」Route Url
我想這樣做:
string url = RouteTable.Routes["Default"].ToString();
//(even though that code is completely wrong)
,這樣我可以有可用路由的URL值一起工作。
到目前爲止,我一直在嘗試.GetVirtualPath()
方法,但它只返回當前控制器的路由數據。
感謝
戴夫
任何人都可以告訴我什麼是「默認」路由的實際URL的語法?在控制器中獲取「Default」Route Url
我想這樣做:
string url = RouteTable.Routes["Default"].ToString();
//(even though that code is completely wrong)
,這樣我可以有可用路由的URL值一起工作。
到目前爲止,我一直在嘗試.GetVirtualPath()
方法,但它只返回當前控制器的路由數據。
感謝
戴夫
路由可以匹配任何數量的URL。所以一條路線沒有網址。要從路線中獲取網址,您必須爲其提供您需要該網址的路線數據。要做到這一點,只需在Url屬性Url.RouteUrl()
上使用RouteUrl()
方法即可。
更新
如果你想將生成,如果你使用它的默認值提供的路線,你可以做這樣的事情的網址:
var url = Url.RouteUrl("Default", ((Route)RouteTable.Routes["Default"]).Defaults);
默認路由具有控制器和操作的默認值,這是我想他想要的(但我仍然想知道爲什麼!)。 – 2010-03-01 15:25:02
@Mattias,謝謝,但是這段代碼返回了我已經在的路線。我正在尋找的是獲得「默認」網址(即RedirectToRoute(「默認」)將重定向到的等效URL。@Craig,這是一個很長的故事(可能是因爲我做錯了!我希望能夠返回默認路由以讓jQuery執行重定向 – DaveDev 2010-03-01 15:34:44
它不返回已經存在的路由或url,它使用當前路由的路由值並將它們提供給您指定的路由,在這種情況下,「默認」,你恰好已經使用該路線爲您當前的網址。請檢查我的更新答案,如何從路線中獲取默認值 – 2010-03-01 15:56:30
控制器通常不應該知道/護理關於網址。你想做什麼? – 2010-03-01 15:16:59