Control.ResolveUrl(String) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將 URL 轉換為要求用戶端可使用的 URL。
public:
System::String ^ ResolveUrl(System::String ^ relativeUrl);
public string ResolveUrl (string relativeUrl);
member this.ResolveUrl : string -> string
Public Function ResolveUrl (relativeUrl As String) As String
參數
- relativeUrl
- String
與 TemplateSourceDirectory 屬性關聯的 URL。
傳回
已轉換的 URL。
例外狀況
發生在 relativeUrl
參數包含 null
的情況。
範例
下列範例會 Image 建立 Web 伺服器控制件物件,並使用 ResolveUrl 方法來設定屬性所 ImageUrl 儲存之影像的路徑。
public class MyResolveUrl:Control
{
private string _ImageUrl;
public string ImageUrl
{
get
{
return _ImageUrl;
}
set
{
_ImageUrl = value;
}
}
protected override void Render(HtmlTextWriter output)
{
Image myImage = new Image();
// Resolve Url.
myImage.ImageUrl = ResolveUrl(this.ImageUrl);
myImage.RenderControl(output);
}
}
Public Class MyResolveUrl
Inherits Control
Private _ImageUrl As String
Public Property ImageUrl() As String
Get
Return _ImageUrl
End Get
Set
_ImageUrl = value
End Set
End Property
Protected Overrides Sub Render(output As HtmlTextWriter)
Dim myImage As New System.Web.UI.WebControls.Image()
' Resolve Url.
myImage.ImageUrl = ResolveUrl(Me.ImageUrl)
myImage.RenderControl(output)
End Sub
End Class
備註
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 方法,則 方法會傳回 /Images/Image1.jpg 值。
這個方法會 TemplateSourceDirectory 使用 屬性解析為絕對 URL。 傳回的 URL 適用於用戶端使用。
如需網站中資源路徑的詳細資訊,請參閱 ASP.NET Web 項目路徑。
注意
僅適用於行動網頁,如果您的應用程式依賴無 Cookie 會話,或可能會從需要無 Cookie 會話的行動瀏覽器收到要求,則使用波浪線 (“~”) 路徑可能會導致不小心建立新的會話,並可能會遺失會話數據。 若要使用 “~/path” 之類的路徑來設定屬性,請先使用 “~/path” 之類的自變數呼叫 ResolveUrl 來解析路徑,然後再將它指派給 屬性。