0

在我的用户控件中,我有 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

4 回答 4

2

做这个:

~/folder1/export.ashx

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

~/folder2/export.ashx

~标志代表您的根目录。

您还可以从 uc.acsx 返回一个目录,然后进入文件夹 1/文件夹 2:

../folder1/export.ashx
于 2013-07-01T13:18:18.950 回答
0

你可以这样做:

var url = Request.Url.FilePath;
var folder = System.IO.Path.GetDirectoryName(url)
hypAddItem.NavigateUrl = folder + "/Export.ashx";
于 2013-07-01T12:41:26.797 回答
0

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

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

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

hypAddItem.NavigateUrl = myUri.PathAndQuery;
于 2013-07-01T13:21:10.653 回答
0

您可以尝试使用 Server.MapPath(~) 并与它一起使用文件夹

于 2013-07-01T13:29:35.980 回答