2012-04-02 153 views
2

對不起,這個問題已經在幾次和其他論壇上提出過了,但是我確實沒有找到解決方案來提供我所需要的。ASP網站的根網址

我有一個ASP.NET MVC網站。在其中一個控制器中,我需要找到該網站的根網址(例如http://myhost:7777/MyVirtualDir/)。我需要它,而不是任何相關網址 - 只有網站的完整絕對ROOT網址。原因是我將使用來自其他應用程序的此URL訪問服務,並在網站上託管。 我試圖從其他論壇上許多dirrerent變種,並提出解決方案,包括:

VirtualPathUtility.ToAbsolute("~") // Returns "/" - it returns relative url 
Url.Content("~") //Returns "/MyVirtualDir/" - only virtual directory path part 

和所有其他ToAbsolute返回相對路徑。

我發明了以下

Request.Url.ToString().Substring(0, Request.Url.ToString().Length - Request.Url.PathAndQuery.Length + Url.Content("~").Length); 

看起來像它的工作原理。但是這裏有太多的魔法。 有沒有正常的方法來檢索這樣的路徑

+0

那麼,什麼是錯的這個解決方案:http://stackoverflow.com/questions/9121140/cant-get -site-root-url-in-asp-mvc – mellamokb 2012-04-02 13:52:50

+0

提供的解決方案中沒有處理虛擬目錄路徑 – 2012-04-02 14:02:36

+0

當我使用我自己的url形式'http://sub.domain.com/virtual/WebPage.aspx ',代碼String.Format(「{0}:// {1} {2}」,Request.Url.Scheme,Request.Url.Authority,Url.Content(「〜/」))'與您的代碼示例相同的結果。除非我錯過了什麼? – mellamokb 2012-04-02 14:09:19

回答