1

我只是被难住了,不知道发生了什么。我也很难研究这个问题,因为我不知道如何提出正确的问题。对于你们中的任何人来说,这应该是一个简单的问题,但您的回答将非常感激!

我有一个包含以下元素的 asp.net 页面:

<a href="http://www.mysite.com?id=1">Link</a>

伟大的。

但是当我将鼠标悬停在输出页面上的链接上时,ASP 发生了一些事情,该链接将导航到这个 url:http ://www.mysite.com/?id=1

它在查询字符串之前添加了额外的“/”。我怎样才能解决这个问题?我为什么会发生这种情况并不直观。这是 web.config 问题吗?即使我只是开始一个新项目,创建一个新页面并将那个元素放在那里,它也会发生。

非常感谢!

它似乎发生在各种浏览器上。

4

2 回答 2

1

我不确定你是否愿意这样做。

这可能正在发生,因为这在技术上是形成 URL 的正确方法。见RFC-1738

HTTP URL 采用以下形式:

  http://<host>:<port>/<path>?<searchpart>

其中<host><port>在第 3.1 节中描述。如果:<port> 省略,则端口默认为 80。不允许使用用户名或密码
<path>是一个 HTTP 选择器,<searchpart>是一个查询
字符串。是可选的,<searchpart>和它
前面的“?”一样。如果两者<path>都不<searchpart>存在,“/”也可以省略。

由于存在 searchpart,因此斜杠是必需的。没有它它可能会工作,但无论如何它可能应该在那里。

于 2012-04-13T22:42:14.333 回答
1

该斜线是必要的,查询字符串不能立即跟随域。请参阅http://en.wikipedia.org/wiki/URL#Syntax

您的特定 URL 省略了路径,但您不能省略域和路径之间的斜线,除非域后面没有其他内容。

于 2012-04-13T22:47:34.410 回答