如何从NameValueCollection的逗号分隔字符串中获取特定值?

时间:2009-03-17 08:45:47

标签: c#

我有一个POST请求

firstname=1&lastname=10&firstname=2&lastname=20&firstname=3&lastname=30.

然后我得到逗号分隔的名称和值列表

Request.Form["firstname"] // 1,2,3
Request.Form["lastname"] //10,20,30

似乎NameValueCollection不包含直接访问指定firstname值的方法?

任务看起来很标准,就像ASP中的Request.Form索引属性一样。

当然我可以实现一个自定义帮助程序枚举器,或者只是简单地解析字符串,但我不确定是否有任何标准解决方案。

老实说,我更愿意直接访问每个名字 - 姓氏对,但我不能问不可能:)。

3 个答案:

答案 0 :(得分:1)

GetValues()将返回string[]

答案 1 :(得分:0)

但你如何指定第一个名字到第二个?

在这种情况下,它们并不具体。所以你应该编写自己的帮助方法来获得你想要的那个。

或者用firstname1,firstname2替换键。

或者如果你从radiolist控件或列表框控件中获取这些,只需使用控件的实例来获取值,我认为这是更好的解决方案。

答案 2 :(得分:-1)

拆分字符串,然后你会收到一个包含值的数组。

string[] firstnames = Request.Form["firstname"].Split(",");
string[] lastnames = Request.Form["lastname"].Split(",");

虽然我必须承认我觉得这有点丑陋的解决方案......这是脆弱的imho。