asp.net 重复的本地主机 URL 路径

本文关键字:主机 URL 路径 net asp | 更新日期: 2023-09-27 18:37:05

我希望你能帮助我解决我一直试图解决的小问题。使用 C#,我构建了一个有 4 个页面的 ASP.NET 网站。(首页 |配置|废话 |联系人),其中配置菜单有子菜单 - config1,config2,如下所示:

菜单:


配置:
- 配置1
- 配置2
等等
联系

首页目录 : 索引.aspx

配置页目录:pages/config1.aspx 和 pages/config2.aspx

我遇到的问题是:当我单击pages/config1.aspx时,转到正确的页面,然后在同一页面上单击pages/config2.aspx,问题开始了 - 重复的页面/页面/config2.aspx - 收到错误消息。如何解决这个问题?

我已经从堆栈溢出复制了代码,这似乎没有帮助。解决方案如下:

在母版页Page_Load中:

string url = HttpContext.Current.Request.Url.AbsoluteUri;
// http://localhost:1302/TESTERS/Default6.aspx
string path = HttpContext.Current.Request.Url.AbsolutePath;
// /TESTERS/Default6.aspx
string host = HttpContext.Current.Request.Url.Host;
// localhost

asp.net 重复的本地主机 URL 路径

问题是您使用的是相对锚点而不是绝对锚点。尝试更改

<a href="pages/pages.config2.aspx">link</a>

<a href="/pages/pages.config2.aspx">link</a>

甚至这将起作用

<a href="~/pages/pages.config2.aspx">link</a>

您可以在母版页中使用以下代码获取您的URL:

string test = Request.Url.AbsolutePath.Substring(1, Request.Url.AbsolutePath.Length - 1);

您可以使用以下代码响应您的页面:

<a href="../config2.aspx">link</a>