asp.net重复localhost url路径

时间:2013-10-26 10:55:00

标签: c# asp.net url

我希望你能解决我一直在努力解决的小问题。使用C#,我构建了一个有4页的ASP.NET网站。 (主页|配置| Blah |联系人)配置菜单有子菜单 - config1,config2如下:

菜单:

主页
配置:
   - config1
   - config2
布拉什 接触

主页目录:index.aspx

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

我遇到的问题是:当我点击pages / config1.aspx时,转到右侧页面,然后在同一页面上我点击pages / config2.aspx,一个问题就出现了 - 重复页面/ 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

3 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

甚至可以使用

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

答案 2 :(得分:0)

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

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

您可以使用以下代码回复您的网页:

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