復(fù)制代碼 代碼如下:
VirtualPathUtility.ToAbsolute( " ~/ " )
HttpRuntime.AppDomainAppVirtualPath
Request.ApplicationPath
Page.ResolveUrl( " ~ " )
以上代碼生成的結(jié)果如下:
當(dāng)以網(wǎng)站的方式訪問(wèn)時(shí),結(jié)果如下:
復(fù)制代碼 代碼如下:
VirtualPathUtility.ToAbsolute("~/") = /
HttpRuntime.AppDomainAppVirtualPath = /
Request.ApplicationPath = /
Page.ResolveUrl("~") = /
當(dāng)以虛擬目錄(http://localhost:806/web2/url.aspx)訪問(wèn)時(shí),結(jié)果如下:
復(fù)制代碼 代碼如下:
VirtualPathUtility.ToAbsolute("~/") = /web2/
HttpRuntime.AppDomainAppVirtualPath = /web2
Request.ApplicationPath = /web2
Page.ResolveUrl("~") = /web2/
采用第二種和第三種方法,還需要做一下處理,因?yàn)榫W(wǎng)站訪問(wèn)時(shí)是以/結(jié)尾,而以虛擬目錄訪問(wèn)時(shí)則是沒(méi)有/的,進(jìn)行還得進(jìn)行一次判斷,稍微麻煩一點(diǎn)。
但是,這些方法在頁(yè)面中使用是沒(méi)有任何問(wèn)題的,但是如果在 Global 的 Application_Start 事件里需要得到網(wǎng)站的絕對(duì)路徑,則需要使用前面2種方法,如果使用第三種方法,則會(huì)報(bào)告如下的錯(cuò)誤:
Request is not available in this context
所以,只能采取頭2種方法。例如
復(fù)制代碼 代碼如下:
void Application_Start( object sender, EventArgs e)
{
System.IO.StreamWriter s = new System.IO.StreamWriter(HttpRuntime.AppDomainAppPath + " log.txt " );
s.WriteLine(VirtualPathUtility.ToAbsolute( " ~/ " ));
s.WriteLine(HttpRuntime.AppDomainAppVirtualPath);
s.Close();
}
您可能感興趣的文章:- ASP.NET總結(jié)C#中7種獲取當(dāng)前路徑的方法
- asp.net獲取HTML表單File中的路徑的方法
- asp.net獲取網(wǎng)站目錄物理路徑示例
- Asp.net中獲取應(yīng)用程序完整Url路徑的小例子
- Asp.net 獲取指定目錄下的后綴名為".doc" 的所有文件名和文件路徑
- .NET獲取當(dāng)前路徑的方法匯總