asp.net獲取網(wǎng)站絕對(duì)路徑示例
VirtualPathUtility.ToAbsolute( " ~/ " )
HttpRuntime.AppDomainAppVirtualPath
Request.ApplicationPath
Page.ResolveUrl( " ~ " )
以上代碼生成的結(jié)果如下:
當(dāng)以網(wǎng)站的方式訪問(wèn)時(shí),結(jié)果如下:
VirtualPathUtility.ToAbsolute("~/") = /
HttpRuntime.AppDomainAppVirtualPath = /
Request.ApplicationPath = /
Page.ResolveUrl("~") = /
當(dāng)以虛擬目錄(http://localhost:806/web2/url.aspx)訪問(wèn)時(shí),結(jié)果如下:
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種方法。例如
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();
}
相關(guān)文章
asp.net GridView中超鏈接的使用(帶參數(shù))
在GridView中,點(diǎn)擊鏈接列跳轉(zhuǎn)到指定頁(yè)面的實(shí)現(xiàn)代碼,需要的朋友可以參考下。2010-03-03
關(guān)于asp.net button按鈕的OnClick和OnClientClick事件
OnClick是button的服務(wù)器端事件 OnClientClick是button的客戶端事件2009-05-05
深入Lumisoft.NET組件開(kāi)發(fā)碰到亂碼等問(wèn)題的解決方法
本篇文章介紹了,在Lumisoft.NET組件開(kāi)發(fā)中碰到亂碼等一些問(wèn)題的解決方法。需要的朋友參考下2013-05-05
ASP.NET中Validation驗(yàn)證控件正則表達(dá)式特殊符號(hào)的說(shuō)明
本文介紹asp.net中RegularExpressionValidator控件中的幾種特殊字符串使用規(guī)則,并做了代碼演示,希望對(duì)大家有所幫助。2016-04-04

