我正在制作这个奇怪的网络服务,它将其参数作为URL中的查询参数。问题是,单个参数可以有多个值。类似于:
http://mydomain/Service?operation=ActivateUser&id=1&id=2&id=3
在这种情况下,我需要激活ID为1,2和3的3个用户。更糟糕的是,它可能是这样的(我认为,规范有点模糊,稍后会澄清):
http://mydomain/Service?operation=ActivateUser&id=1&operation=DeleteUser&id=2
在这种情况下,我需要激活用户1并删除用户2.
所以我真的需要一个URL解析器来保存参数的顺序。 .NET的默认Request.QueryString
不会这样做,它只是用逗号分隔值,然后用命令分隔地狱。
没有潜入并将原始网址拆分为?,&和=我自己,还有更好的方法吗?
答案 0 :(得分:3)
听起来像Request.QueryString.GetValues
(NameValueCollection.GetValues)就是你所追求的。它将返回为给定键找到的值的字符串数组,以及它们在URL中的顺序。
给定http://www.site.com/page.aspx?keyid=1&keyid=2&keyid=3
string[] keys = Request.QueryString.GetValues("keyid");
keys[0] would be "1"
keys[1] would be "2"
keys[2] would be "3"