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

标签 asp.net .net parsing url

我正在制作这个奇怪的 Web 服务,它将其参数作为 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 不会这样做,它只是用逗号分隔值,而且顺序也很糟糕。

除了自己深入研究并通过 ?、& 和 = 分割原始 URL 之外,还有更好的方法吗?

最佳答案

听起来 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"

关于asp.net - 如何解析具有多个参数值的 URL 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8010559/

相关文章:

c# - DownloadStringTaskAsync和DownloadStringAsync之间的区别

c# - 在 asp.net core DataProtection api 中找不到 ProtectKeysWithCertificate 方法

.net - F#中的数组协方差

parsing - 对前 n 个字符应用解析器 n 次(Haskell)

parsing - 使用 flex/bison 构建类似 Lisp/Scheme 的解析树

asp.net - 手机访问本地IIS网站

c# - 404 时重定向到 home/index

c# - 我应该如何正确使用 Fluent NHibernate.Testing CheckList?

c# - 当前上下文中不存在名称 'File'

php - 根据分隔符切片 HTML