Control.ResolveUrl(String) 方法

定义

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

适用于

另请参阅