MVC時代基礎知識:Page的ResolveClientUrl與ResolveUrl讀取路徑,Razor @Href 解決相對路徑
一、ResolveClientUrl與ResolveUrl
Page.ResolveClientUrl():返回相對於當前頁面的一個相對地址
Page.ResolveUrl():返回相對於當前應用程式的一個相對地址
但是兩個方法的地址通過Server.MapPath()獲取的絕對地址是一樣的!
例如:
新建一個應用程式,根目錄是“D:\MyApplication”,在根目錄下新建如下目錄、頁面以及圖片
頁面:TestFolder/TestPage.aspx
圖片:TestFolder/Images/TestImg.png
在TestPage.aspx頁面裡分別呼叫
String url1 = Page.ResolveClientUrl("Images/TestImg.png"); //結果:Images/TestImg.png
String path1 = Server.MapPath(url1); //結果:D:\MyApplication\TestFolder\TestImg.png
String url2 = Page.ResolveUrl("Images/TestImg.png"); //結果:TestFolder/TestImg.png
String path2 = Server.MapPath(url2); //結果:D:\MyApplication\TestFolder\TestImg.png---------------------------------------------------------------------------
ResolveClientUrl返回相對於當前頁面下檔案的地址
ResolveUrl則返回頁面所在應用程式下的相對地址
例如:
頁面:~/Student/main.aspx
影象:~/Images/copy.gif
(這裡~表示應用程式根目錄)
使用一:
resolveClientUrl=Page.ResolveClientUrl("Images/copy.gif")
resolveUrl=Page.ResolveUrl("Images/copy.gif")
在頁面main.aspx裡使用copy.gif影象,則使用標題上的兩種方法返回的結果如下
ResolveClientUrl:Images/copy.gif
ResolveUrl:/Student/Images/copy.gif使用二:
resolveClientUrl=Page.ResolveClientUrl("~/Images/copy.gif")
resolveUrl=Page.ResolveUrl("~/Images/copy.gif")
在頁面main.aspx裡使用copy.gif影象,則使用標題上的兩種方法返回的結果如下
ResolveClientUrl:../Images/copy.gif
ResolveUrl:/Images/copy.gifResolveClientUrl用途之一:
母版頁面中,指令碼或樣式的路徑採用Page.ResolveClientUrl進行獲取,這樣不同目錄下使用了母版頁的頁面都能自動獲取到對應指令碼或樣式檔案的路徑了。
二、@Href("
使用Href()方法轉換
例如:
@Href("~/")