【问题标题】:Set an ASP.NET HyperLink NavigateUrl to a relative path?将 ASP.NET HyperLink NavigateUrl 设置为相对路径?
【发布时间】:2016-07-20 12:30:35
【问题描述】:

当您尝试将 HyperLink 控件的 NavigateUrl 属性设置为相对路径时,例如:

pages/myPage.aspx

ASP.NET 会将相对 URL 解析为绝对 URL。

如何在生成的 HTML 中获得正确的相对 URL?

有趣的是,带有前导斜杠的相对 URL, 按原样呈现,没有被解析。

【问题讨论】:

    标签: asp.net url


    【解决方案1】:

    设置控件的href属性,而不是NavigateUrl

    <asp:HyperLink runat="server" href="pages/myPage.aspx">test</asp:HyperLink>
    

    或在代码隐藏中:

    myHyperLinkId.Attributes["href"] = "pages/myPage.aspx";
    

    【讨论】:

    • 你能告诉我们你从这两种方法(NavigateUrl 和 href)中得到了什么吗?当我测试它时,我在页面的 HTML 输出中看到了相同的 URL。至于获取应用程序根文件夹的相对路径,我可以用NavigateUrl="~/pages/myPage.aspx"语法来获取。
    • 您似乎是对的……我目前无法重现我最初遇到的问题。我将尽快进行更多调查,希望在获得更多信息时能够更新我的 Q 和/或 A。
    • 我更新了我的问题。您对我使用的特定相对 URL 是正确的。仅当使用不以斜杠或句点开头的相对 URL 时才会出现此问题。
    猜你喜欢
    • 2011-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-05-11
    • 2010-09-21
    • 1970-01-01
    • 2014-10-15
    • 2013-03-07
    • 1970-01-01
    相关资源
    最近更新 更多