Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何解析具有多个参数值的URL字符串?_Asp.net_.net_Parsing_Url - Fatal编程技术网

Asp.net 如何解析具有多个参数值的URL字符串?

Asp.net 如何解析具有多个参数值的URL字符串?,asp.net,.net,parsing,url,Asp.net,.net,Parsing,Url,我正在制作一个古怪的Web服务,它将其参数作为URL中的查询参数。问题是,单个参数可以有多个值。类似于: http://mydomain/Service?operation=ActivateUser&id=1&id=2&id=3 在这种情况下,我需要激活ID为1、2和3的3个用户。更糟糕的是,它可能是这样的(我认为,规范有点模糊,稍后会澄清): 在这种情况下,我需要激活用户1并删除用户2 所以我真的需要一个URL解析器来保存参数的顺序。NET的默认Request.Que

我正在制作一个古怪的Web服务,它将其参数作为URL中的查询参数。问题是,单个参数可以有多个值。类似于:

http://mydomain/Service?operation=ActivateUser&id=1&id=2&id=3
在这种情况下,我需要激活ID为1、2和3的3个用户。更糟糕的是,它可能是这样的(我认为,规范有点模糊,稍后会澄清):

在这种情况下,我需要激活用户1并删除用户2

所以我真的需要一个URL解析器来保存参数的顺序。NET的默认
Request.QueryString
没有做到这一点,它只是用逗号分隔值,而且顺序很糟糕


除了按?,&和=我自己分割原始URL之外,还有更好的方法吗?

这听起来像是
Request.QueryString.GetValues
(这就是)你想要的。它将返回一个字符串数组,其中包含它为给定键找到的值,以及它们在url中的顺序

给定


你能更改分隔符吗?op=ActivateUser&ids=1 | 2 | 3?不,不幸的是,这个表述是强加给我的。很好!现在唯一的问题是我的第二个例子。下周我们将看看这是否是一个真正的问题。@Vilx-应该还可以。您必须单独检查操作querystring,然后我假设您将对数组中的第二项执行操作。但是如果“操作”有2个值,“id”有4个值,我如何知道哪些id将转到哪个操作?@Vilx-Ahh。明白了。没有将其视为多个操作的可能性。那可能更难。此时可能需要手动解析。
http://mydomain/Service?operation=ActivateUser&id=1&operation=DeleteUser&id=2
string[] keys = Request.QueryString.GetValues("keyid");

keys[0] would be "1"
keys[1] would be "2"
keys[2] would be "3"