Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 相对URL在System.Web.UI.UserControl中不起作用_C#_Asp.net_Resolve - Fatal编程技术网

C# 相对URL在System.Web.UI.UserControl中不起作用

C# 相对URL在System.Web.UI.UserControl中不起作用,c#,asp.net,resolve,C#,Asp.net,Resolve,上面的代码工作正常,当添加到页面时,将成功识别tilde/~符号并将url转换为相对url 但是,当我将类的派生更改为System.Web.UI.WebControl时,它完全不做任何事情,并且保持tilde/~不变 我查看了System.Web.UI.Control,它实现了IUrlResolutionService接口,但似乎仍然无法获取System.Web.UI.WebControl来解析URL。您可以尝试System.Web.VirtualPath实用性类: public class f

上面的代码工作正常,当添加到页面时,将成功识别tilde/~符号并将url转换为相对url

但是,当我将类的派生更改为
System.Web.UI.WebControl
时,它完全不做任何事情,并且保持tilde/~不变


我查看了
System.Web.UI.Control
,它实现了
IUrlResolutionService
接口,但似乎仍然无法获取
System.Web.UI.WebControl
来解析URL。

您可以尝试System.Web.VirtualPath实用性类:

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

我通常这样做是为了获得根目录并让它们映射我的路径:


+“/mypath/mypage.aspx”

我希望该类能够解析URL,并了解它们为什么不解析。不确定,但可能是WebControl不支持这种相对映射…我会检查它
public foo()
{
  var a = new HyperLink()
      { 
          Text="Test", 
          NavigateUrl=VirtualPathUtility.ToAbsolute("~/abc.aspx")
      };
  this.Controls.Add(a);
}