c#获取带有“#”的完整网址

时间:2009-08-24 12:34:07

标签: c# asp.net url

在尝试获取c#页面的整个网址时遇到了一个小问题(?)。

网址包含“#” - 链接引用字符。当我抓住网址

时,我希望这样

EG。 http://localhost/site/page.aspx?var=1&var=2#link

我尝试了Request.URL,Request.Querystring等,它只返回“#” - char。

有没有办法抓住最后一部分?

提前致谢

3 个答案:

答案 0 :(得分:8)

仅使用服务器代码是不可能的。 #之后的部分根本没有在请求中发送,它永远不会离开浏览器。

如果你想要#之后的部分,你必须在将请求发送到服务器之前使用Javascript复制它,并将值放在查询字符串中。

答案 1 :(得分:6)

您的问题是#在页面中指定了一个锚点,因此浏览器会看到:

  

http://localhost/site/page.aspx?var=1&var=2

然后在页面中查找

<a name="link">anchor</a>

由于这是客户端,您需要从URL中转义# - 您无法在服务器上获取它,因为浏览器已将其剥离。

答案 2 :(得分:0)

你确定#之后的内容没有发送到服务器。我很确定几年前我用ajax-app进行了一次测试,其中的url可以被复制并发送给没有javascript的人,只需在浏览了javascript后在网址中修改#之后的内容。

那是在PHP中,浏览器可能是IE6。