【问题标题】:ASP.Net HyperLink's NavigateUrl changes after rendering in to HTML AnchorASP.Net HyperLink 的 NavigateUrl 在呈现为 HTML Anchor 后发生变化
【发布时间】:2011-05-11 07:11:07
【问题描述】:

我对 ASP.Net 很陌生。我有一个 Master.aspx 和一个 Page1.aspx 和 Page2.aspx,都在同一个目录中。

大师:

<asp:HyperLink NavigateUrl="Page1.aspx" runat="server" Text="Page 1" />
<asp:HyperLink NavigateUrl="Page2.aspx" runat="server" Text="Page 2" />

Page1 和 Page2 都是从上面的母版页呈现的。

这三个都在一个被映射为子域的虚拟目录中,这是详细信息:

虚拟目录:dirvir 域名:dirvir.example.com

现在当我打开任何页面时说:

http://dirvir.example.com/Page1.aspx

呈现的超链接包含

href="../virdir/Page1.aspx"
href="../virdir/Page2.aspx"

分别。

点击它们会带我去

http://dirvir.example.com/dirvir/Page1.aspx
http://dirvir.example.com/dirvir/Page2.aspx

我希望它在哪里

http://dirvir.example.com/Page1.aspx
http://dirvir.example.com/Page2.aspx

我可以通过使用 来达到同样的效果,但我在后面的代码中也需要它们,所以这不是我们想要的。

注意:也可以将 与 runat 服务器一起使用 行为方式与 HyperLink 相同 可以。

【问题讨论】:

    标签: asp.net html hyperlink anchor navigateurl


    【解决方案1】:

    您可以尝试如下所示更改 NavigateUrl,

    <asp:HyperLink NavigateUrl="~/Page1.aspx" runat="server" Text="Page 1" />
    <asp:HyperLink NavigateUrl="~/Page2.aspx" runat="server" Text="Page 2" />
    

    或者

    <asp:HyperLink NavigateUrl="/Page1.aspx" runat="server" Text="Page 1" />
    <asp:HyperLink NavigateUrl="/Page2.aspx" runat="server" Text="Page 2" />
    

    【讨论】:

    • 它仅在页面和母版页直接位于虚拟目录中时才有效,但是如果它们位于该虚拟目录中的文件夹中,则链接会尝试从虚拟目录中获取它,例如http://dirvir.example.com/testdir/Page1.aspx 的网址将包含 http://dirvir.example.com/Page1.aspx
    • 你确定尝试过第二个建议吗, 这肯定可以工作,我刚刚使用子虚拟目录设置进行了测试
    【解决方案2】:

    在 Visual Studio 中,单击解决方案资源管理器中的项目名称。完成此操作后,您将在属性窗口下找到一个名为Virtual Path 的属性,其值为/dirvir。将此更改为/

    【讨论】:

      【解决方案3】:

      如果您不需要它作为服务器端链接,只需使用常规锚标记并让 ASP.NET 根据您的 Web 应用程序的虚拟目录找出正确的路径:

      <a href="<%: ResolveURL("~/Page1.aspx")%>">Page 1</a>
      

      【讨论】:

      • 这就是我希望它们出现在服务器端的问题,而且我想停止 ASP.net 以考虑我的 URL。让它保持原样
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-02
      • 2017-07-23
      • 2011-07-12
      • 2017-09-10
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      相关资源
      最近更新 更多