如何获取查询字符串中的原始(未解码)值?
我找到了Request.Url.Query,它成功地为我提供了原始查询字符串.但是,它给了我一个类型'字符串'和整个QS内容:我如何获得键/值对?
我确实找到了HttpUtility.ParseQueryString,但这迫使我做解码.我需要原始名称/值对.
我必须为此实现自己的查询字符串解析吗?有没有人做过一个我可以使用忽略编码?我找到了Mono实现,但这也强制编码.
谢谢!
编辑:我正在寻找这个的原因是因为某人(不是我!)编写了一些代码来加密一个值并将其放在查询字符串中.但是他们忘了先编码.Request.Querystring()正在进行的解码使得无法解密大约50%的解码,因为加密会留下"+"和"."之类的内容.
Request.QueryString
应该给你一个NameValueCollection
已解码的所有键/值对.
对不起,我误解了这个问题.你需要自己解析它,但它不应该那么困难:
Request.Url.Query.Split('&').Select(pair => pair.Split('=')) .ToDictionary(a => a[0], a => a[1]);
当然,这是假设您的URL中未编码的值不包含"&"或"="值.如果他们这样做......好吧,那就是那种URL编码,不是吗?