在我的用户控件中我有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
答案 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文件夹