1

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

菜单:

主页
配置:
- config1
- config2
Blah
联系方式

主页目录:index.aspx

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

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

我从 stackoverflow 复制了似乎没有帮助的代码。像下面这样的解决方案:

在 MasterPage 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
4

3 回答 3

1

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

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

<a href="/pages/pages.config2.aspx">link</a>
于 2013-10-26T10:58:41.060 回答
0

您可以在 masterpage 中使用以下代码获取您的网址:

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

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

<a href="../config2.aspx">link</a>
于 2013-10-26T13:39:26.443 回答
0

甚至这会起作用

<a href="~/pages/pages.config2.aspx">link</a>
于 2013-10-26T11:03:08.367 回答