我是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
我可以通过使用&lt; a&gt;来实现相同的目标。但我也需要它们背后的代码,以至于不需要它。
注意:使用&lt; a&gt;与runat服务器也 HyperLink的行为方式相同 确实
答案 0 :(得分: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" />
答案 1 :(得分:0)
在Visual Studio中,单击“解决方案资源管理器”中的“项目名称”。执行此操作后,您将在名为Virtual Path
的属性窗口下找到一个属性,其值为/dirvir
。将其更改为/
答案 2 :(得分:0)
如果您不需要它作为服务器端链接,只需使用常规锚标记,让ASP.NET根据您的Web应用程序的虚拟目录找出正确的路径:
<a href="<%: ResolveURL("~/Page1.aspx")%>">Page 1</a>