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 Project 路径。
备注
仅对于移动网页,如果应用程序依赖于无 Cookie 会话,或者可能从需要无 Cookie 会话的移动浏览器接收请求,则使用路径中的波形符 (“”~) 可能会导致无意中创建新会话并可能丢失会话数据。 若要设置具有路径(如“path”/~)的属性,请在将参数(如“path”~/)分配给该属性之前通过调用ResolveUrl参数来解析路径。