2011-02-04 10 views
2
public class foo : System.Web.UI.Control 
{ 
    public foo() 
    { 
     var a = new HyperLink(){ Text="Test", NavigateUrl="~/abc.aspx"}; 
     this.Controls.Add(a); 
    } 
} 

上記のコードは正しく動作し、ページに追加するとチルダ/〜記号が正しく識別され、URLが相対URLに変換されます。相対URLがSystem.Web.UI.UserControlで機能しない

しかし、クラスの導出をSystem.Web.UI.WebControlに変更すると、それは絶対に何もせず、チルダ/〜そのままになります。

IUrlResolutionServiceインターフェイスを実装したSystem.Web.UI.Controlを見ましたが、まだURLを解決するためにSystem.Web.UI.WebControlを取得できないようです。

答えて

1

あなたはSystem.Web.VirtualPathUtilityクラスを試すことができます。

public foo() 
{ 
    var a = new HyperLink() 
     { 
      Text="Test", 
      NavigateUrl=VirtualPathUtility.ToAbsolute("~/abc.aspx") 
     }; 
    this.Controls.Add(a); 
} 
+0

私はクラスにURLを解決してもらいたいと思っています。 – maxp

+0

わかりませんが、WebControlがこの相対マッピングをサポートしていない可能性があります...私はそれをチェックアウトします –

関連する問題