2008-10-17 65 views

回答

2
System.Web.HttpServerUtility.MapPath("~/filename.ext"); 

會給你物理(磁盤)路徑,你可以使用System.IO方法等。

System.Web.Hosting.VirtualPathUtility.ToAbsolute("~/filename.ext"); 

會給你「絕對」的虛擬路徑。這不會是完整的網址,但也不一定是網域的根源。它可能類似於

 
/admin/filename.ext 

如果應用程序在根目錄下的子目錄。

0

已經接近我想要的了......除了那個似乎沒有被編譯或者在我稱之爲無效的上下文中。

不過,我發現了什麼,我需要System.Web.HttpRuntime.AppDomainAppPath

+0

啊。這應該相當於HttpServerUtility.MapPath(「〜」) – harpo 2008-10-17 03:36:59

0

如果你在你的ASPX標記就可以突破到C#和使用方法RESOLVEURL像這樣:

<%= Page.ResolveUrl("~/PathFromRoot/YourFile.pdf") %> 
0

老問題,我知道,但我在尋找類似答案時找到了它。除非API已更改,否則harpo的答案不起作用的原因是因爲MapPath是一種實例方法,而不是一種靜態方法。但是不要害怕 - 在Controller - Server屬性的每個實例中都存在HttpServerUtility的實例。所以你的情況,如果你是一個控制器(或者,我懷疑,一個視圖)中:

var appRoot = Server.MapPath("~/"); 

這應該做的伎倆!

相關問題