2011-11-03 95 views

回答

29

這是我用

HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + HttpContext.Current.Request.ApplicationPath; 
+0

如果它不是應用程序的根目錄,HttpContext.Current.Request.ApplicationPath將不會在第一個示例中返回/ shop /。 –

+1

如果'店鋪'不是虛擬目錄,這是一個好點。我想我假設它是基於業餘愛好者的問題。所以問題就變成了業餘愛好者想要的應用程序根目錄(我的代碼提供了什麼)的完整路徑,或者只是完整的url減去文件名。 –

+0

現在我重新讀了這個問題,他們只是說虛擬目錄,所以你的答案確實適合這個問題。 –

4

Request.Url應該包含你所需要的一切。在這一點上,這是一個檢查字符串的問題,以及你想要從中獲取什麼。我之前使用過AbsoluteUri,並且工作正常。

這個例子不是傻瓜證明,但你應該能夠找出你從這個需要:

string Uri = Request.Url.AbsoluteUri; 
string Output = Uri.Substring(0, Uri.LastIndexOf('/') + 1); 
0

這應該工作

Request.Url.OriginalString.Substring(0, Request.Url.OriginalString.LastIndexOf(Request.FilePath.Substring(Request.FilePath.LastIndexOf("/")))) + "/" 
1

該解決方案可以工作,並且是短:

string url = (new Uri(Request.Url, ".")).OriginalString;