次の方法で共有


Control.ResolveUrl メソッド

要求側クライアントで使用できる URL に変換します。

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Public Function ResolveUrl ( _
    relativeUrl As String _
) As String
'使用
Dim instance As Control
Dim relativeUrl As String
Dim returnValue As String

returnValue = instance.ResolveUrl(relativeUrl)
public string ResolveUrl (
    string relativeUrl
)
public:
String^ ResolveUrl (
    String^ relativeUrl
)
public String ResolveUrl (
    String relativeUrl
)
public function ResolveUrl (
    relativeUrl : String
) : String
適用できません。

パラメータ

戻り値

変換後の URL。

例外

例外の種類 条件

ArgumentNullException

relativeUrl パラメータが null 参照 (Visual Basic では Nothing) を格納している場合に発生します。

解説

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 はクライアントで使用できます。

Web サイトのリソース パスの詳細については、「ASP.NET Web サイトのパス」を参照してください。

メモメモ :

モバイル Web ページに関してのみ、アプリケーションが Cookie なしのセッションに依存する場合または Cookie なしのセッションを要求するモバイル ブラウザからの要求を受け取る可能性がある場合、パスにティルダ ("~") を使用すると、意図せず、新しいセッションが作成され、セッション データが失われる可能性があります。"~/path" のようなパスを含むプロパティを設定するには、"~/path" のような引数を指定した ResolveUrl を呼び出してパスを解決してから、そのパスをプロパティに割り当てます。

使用例

Image Web サーバー コントロール オブジェクトを作成し、ResolveUrl メソッドを使用して、ImageUrl プロパティに格納されているイメージのパスを設定する例を次に示します。

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
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 extends Control
{
    private String _ImageUrl;

    /** @property 
     */
    public String get_ImageUrl()
    {
        return _ImageUrl;
    } //get_ImageUrl

    /** @property 
     */
    public void set_ImageUrl(String value)
    {
        _ImageUrl = value;
    } //set_ImageUrl

    protected void Render(HtmlTextWriter output)
    {
        Image myImage = new Image();

        // Resolve Url.
        myImage.set_ImageUrl(ResolveUrl(this.get_ImageUrl()));
        myImage.RenderControl(output);
    } //Render
} //MyResolveUrl

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

Control クラス
Control メンバ
System.Web.UI 名前空間
TemplateSourceDirectory

その他の技術情報

ASP.NET Web サイトのパス