我一直在使用ResolveUrl在ASP.NET文件中添加CSS和Javascript。ResolveUrl和ResolveClientUrl有什麼區別?
但我通常會看到ResolveClientUrl的選項。兩者有什麼區別?
什麼時候應該使用ResolveClientUrl?
我一直在使用ResolveUrl在ASP.NET文件中添加CSS和Javascript。ResolveUrl和ResolveClientUrl有什麼區別?
但我通常會看到ResolveClientUrl的選項。兩者有什麼區別?
什麼時候應該使用ResolveClientUrl?
ResolveUrl創建相對於根的URL。
ResolveClientUrl創建相對於當前頁面的URL。
您也可以使用任何你想要的一個,但更常用RESOLVEURL。
根據MSDN文檔:
完全限定的URL適合在 瀏覽器使用指定的 資源。
使用ResolveClientUrl方法 返回一個URL字符串適合 通過客戶端來訪問資源上 Web服務器,如圖像文件, 鏈接至其他頁面,等等。
轉換後的URL。
如果relativeUrl參數包含絕對URL,URL被原封不動地返回。如果relativeUrl參數包含相對URL,則該URL將更改爲相對於當前請求路徑正確的相對URL,以便瀏覽器可以解析URL。
例如,請考慮以下 場景:
一個客戶請求ASP.NET頁 包含具有 與之相關聯的圖像的用戶控制。
的ASP.NET頁面位於 /Store/page1.aspx。
用戶控件位於 /Store/UserControls/UC1.ascx。
圖像文件位於 /UserControls/Images/Image1.jpg。
如果用戶控制傳遞到圖像中的 相對路徑(即, /Store/UserControls/Images/Image1.jpg) 到RESOLVEURL方法,所述方法 將返回值 /圖像/ IMAGE1 .JPG。
我覺得這解釋了它相當不錯。
這裏有一個簡單的例子:
//Returns: ../HomePage.aspx
String ClientURL = ResolveClientUrl("~/HomePage.aspx");
//Returns: /HomePage.aspx
String RegURL = ResolveUrl("~/HomePage.aspx");
//Returns: C:\inetpub\wwwroot\MyProject\HomePage.aspx
String ServerMappedPath = Server.MapPath("~/HomePage.aspx");
//Returns: ~/HomePage.aspx
String appRelVirtPath = AppRelativeVirtualPath;
//Returns: http://localhost:4913/
String baseUrl = Request.Url.GetLeftPart(UriPartial.Authority) + Request.ApplicationPath;
//Returns: "http://localhost:4913/HomePage.aspx"
String absUri = Request.Url.AbsoluteUri;
你可以添加一些你的例子的文本解釋嗎? – 2013-10-15 18:46:08
簡而言之:
Page.ResolveUrl(~): creates the URL from the root of app.
和
Page.ResolveClientUrl(~): creates the URL relative to the current page.(e.g: ../../..)
,但我在asp.net的測試,Page.ResolveUrl更好因爲穩定的輸出&是不相對的。
如果MSDN很好地解釋了這種差異,我就不會在這裏。 – 2012-04-13 11:34:06
我認爲MSDN文檔很糟糕,這就是爲什麼我在這裏!大多數人會理解「完全合格的網址」,意思是一個絕對的URL – Andy 2015-03-10 15:53:14