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。

返回

String

转换后的 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参数来解析路径。

适用于

另请参阅