如何从查询字符串中获取#value?

时间:2012-01-06 12:30:49

标签: c# asp.net .net

请帮我从网址获取查询字符串值。

http://test.com/test.aspx#id=test

我尝试使用

进行访问
Request.QueryString["id"]

它获取空值。请建议如何从URL访问id。

由于

5 个答案:

答案 0 :(得分:11)

我同意所有人#应该是?,但仅限于FYI:

请注意,实际上无法通过URL获取锚点,例如:

  

http://test.com/test.aspx#id=test

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

  

http://test.com/test.aspx

然后在页面中查找

<a id="test">Your anchor</a>

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

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

此处有更多信息c# get complete URL with "#"

答案 1 :(得分:8)

查询字符串以问号?开头,而不是哈希#

尝试:

http://test.com/test.aspx?id=test 

使用哈希,你要求跳转到文档中的命名锚点,而不是提供查询字符串

答案 2 :(得分:6)

您的网址无效。

 http://test.com/test.aspx#id=test

指的是名为id=test书签

你应该使用

http://test.com/test.aspx?id=test

然后Request.QueryString["id"]将起作用。

答案 3 :(得分:4)

如果您想将其用作哈希标记,可以使用:

string value = Request.Url.ToString().Split('#')[1];

使用此代码,您将获得哈希标记值。

答案 4 :(得分:2)

不应该是吗?

http://test.com/test.aspx?id=test