C# 如何从用户控件获取页面url路径
在我的用户控件中,我有超链接 该链接需要指向包含用户控件的页面的同一文件夹中名为“export.ashx”的页面C# 如何从用户控件获取页面url路径,c#,asp.net,C#,Asp.net,在我的用户控件中,我有超链接 该链接需要指向包含用户控件的页面的同一文件夹中名为“export.ashx”的页面 <asp:HyperLink CssClass="btnblue" ID="hypAddItem" Visible="false" NavigateUrl="" runat="server"><i class="icon-plus"></i> Add Part</asp:HyperLink> 我需要在pageUrl中放入哪些内容才能在
<asp:HyperLink CssClass="btnblue" ID="hypAddItem" Visible="false" NavigateUrl="" runat="server"><i class="icon-plus"></i> Add Part</asp:HyperLink>
我需要在pageUrl中放入哪些内容才能在每个文件夹上工作
我的目录结构
root
folder1
pageWithUC.aspx
export.ashx
folder2
pagewithUC.aspx
export.ashx
usercontrols
uc.acsx
您可以这样做:
var url = Request.Url.FilePath;
var folder = System.IO.Path.GetDirectoryName(url)
hypAddItem.NavigateUrl = folder + "/Export.ashx";
这样做:
~/folder1/export.ashx
如果您想要第二个文件夹:
~/folder2/export.ashx
~
符号代表您的根目录
您还可以从uc.acsx返回一个目录,进入folder1/folder2:
../folder1/export.ashx
您可以从请求中获取当前URL,并将其与ashx组合,如下所示:
Uri myUri = new Uri(HttpContext.Current.Request.Url, "Export.ashx");
然后使用Uri类方法获取相对路径:
hypAddItem.NavigateUrl = myUri.PathAndQuery;
您可以尝试使用Server.MapPath(~)并将then文件夹与之一起使用~/export.aspx。。。“~”代表主目录。my export.ashx不在主目录中。他在页面目录中。代码在UC代码中,不在页面中。我不想为URL添加属性。什么是变量pageUrl?我猜想这一定是hypAddItem.NavigateUrl=folder+“/Export.ashx”;
hypAddItem.NavigateUrl = myUri.PathAndQuery;