获取URL的参数的值?

sskset 2012-10-20 09:20:46
我的网站有一个这个地址,人家从外部传入的时候带上了?#q=abc&m=def
请问怎么获取参数q和m的值?

http://www.test.com/?#q=abc&m=def


请看清楚题目再回复.
...全文
283 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalmeeme 2012-10-20
  • 打赏
  • 举报
回复
根本就取不到,#这个锚记后面的只给浏览器使用,不会发送给服务器的,所以无解。
缪军 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
request["#q"]
request["m"]

完事拿变量接着 或许还需要强转成你需要的类型 那得参数值可能是object
[/Quote]
你的回复是错误的,
9楼已经说明了url的格式,
#标识符是:url片段(fragment)的标识符,和request没有关系

小枪 2012-10-20
  • 打赏
  • 举报
回复
request["#q"]
request["m"]

完事拿变量接着 或许还需要强转成你需要的类型 那得参数值可能是object
缪军 2012-10-20
  • 打赏
  • 举报
回复
除了9楼提到的方法,还可以把url中的#替换成转义符,比如空字符串,或者‘1=1&’
重新用new uri()构造一次
然后再用request解析
chengmingwei11 2012-10-20
  • 打赏
  • 举报
回复
js:
url.substring(url.indexof("=")+1,url.length)再用split 应该就行
缪军 2012-10-20
  • 打赏
  • 举报
回复

URL的一般格式为(带方括号[]的为可选项):   
protocol :// hostname[:port] / path / [;parameters][?query]#fragment

关于fragment,参见MSDN:
http://msdn.microsoft.com/zh-cn/library/system.uri.fragment.aspx
风一样的大叔 2012-10-20
  • 打赏
  • 举报
回复
种草德鲁伊 2012-10-20
  • 打赏
  • 举报
回复
这一部分只能在客户端获取,浏览器是不会把它们发给服务器的
种草德鲁伊 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

那就有了第一个问题了,你怎么拿到这个#号后面的值?
[/Quote]

window.location.hash
sskset 2012-10-20
  • 打赏
  • 举报
回复
那就有了第一个问题了,你怎么拿到这个#号后面的值?
wuyq11 2012-10-20
  • 打赏
  • 举报
回复
正则获取
Regex reg = new Regex(@"(?(&q=[^&]*$)&q=[^&]*$|q=[^&]*&)");
_小黑_ 2012-10-20
  • 打赏
  • 举报
回复
如果是asp.ent可以用Server类得方法取得,有很多你可以自己试下,具体我忘了,以前也做过类似的
MoXiaoRab 2012-10-20
  • 打赏
  • 举报
回复
我觉得这种情况用正则很合适
暖枫无敌 2012-10-20
  • 打赏
  • 举报
回复
格式是固定的嘛??

通过字符串分割不行吗?
那小x的传说 2012-10-20
  • 打赏
  • 举报
回复
1/javascript alert (window.location.hash) 就看到参数是什么了,然后再做正则处理,
2/服务器会把#号后面的参数清除掉的
wuyq11 2012-10-20
  • 打赏
  • 举报
回复
可以用js+input(hidden)进行传递如:
http://localhost/index.aspx?name=test#test
缪军 2012-10-20
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 的回复:]
C# code
MatchCollection matches = Regex.Matches("http://www.test.com/?#q=abc&m=def", @"(?<=[#&]).+?(?==)");
foreach (Match match in matches)
{
Response.Write(ma……
[/Quote]

晕死,楼主已经交代了,url是客户端发起的,如果是服务器端发起,楼主也不会来问了
诺维斯基 2012-10-20
  • 打赏
  • 举报
回复
MatchCollection matches = Regex.Matches("http://www.test.com/?#q=abc&m=def", @"(?<=[#&]).+?(?==)");
foreach (Match match in matches)
{
Response.Write(match.Value+"<br/>");
}

//q
//m

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧