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 来解析路径。