如何从用户控件获取页面URL路径

时间:2013-07-01 11:53:38

标签: c# asp.net

在我的用户控件中我有HyperLink 该链接需要以页面命名" export.ashx"在用户控制的页面的同一文件夹中

<asp:HyperLink CssClass="btnblue" ID="hypAddItem" Visible="false" NavigateUrl="" runat="server"><i class="icon-plus"></i> Add Part</asp:HyperLink>

并在我的代码中

hypAddItem.NavigateUrl = pageUrl + "Export.ashx";

我需要放在可以在每个文件夹上使用的pageUrl中吗?

我的目录结构

root
  folder1
    pageWithUC.aspx
    export.ashx
  folder2
     pagewithUC.aspx
     export.ashx
  usercontrols
    uc.acsx

4 个答案:

答案 0 :(得分:2)

这样做:

~/folder1/export.ashx

如果你想要第二个文件夹:

~/folder2/export.ashx

~代表您的根目录。

你也可以从uc.acsx返回一个目录,然后进入folder1 / folder2:

../folder1/export.ashx

答案 1 :(得分:0)

你可以这样做:

var url = Request.Url.FilePath;
var folder = System.IO.Path.GetDirectoryName(url)
hypAddItem.NavigateUrl = folder + "/Export.ashx";

答案 2 :(得分:0)

您可以从请求中获取当前网址,并将其与您的ashx结合使用,如下所示:

Uri myUri = new Uri(HttpContext.Current.Request.Url, "Export.ashx");

然后使用Uri类方法获取相对路径:

hypAddItem.NavigateUrl = myUri.PathAndQuery;

答案 3 :(得分:0)

您可以尝试使用Server.MapPath(〜)并使用then文件夹