1

我对 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

我可以通过使用 <a> 来实现相同的目标,但我也需要在后面的代码中使用它们,所以这不是我们想要的。

注意:将 <a> 与 runat 服务器一起使用的行为也与 HyperLink 的行为方式相同。

4

3 回答 3

0

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

<a href="<%: ResolveURL("~/Page1.aspx")%>">Page 1</a>
于 2010-11-17T08:45:31.013 回答
0

您可以尝试如下所示更改 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" />
于 2010-11-17T08:33:12.803 回答
0

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

于 2010-11-17T08:33:25.090 回答