2013-10-18 107 views
0

我有查询字符串具有这样的参数:... & ChildAge = 3 & ChildAge = 4 但收集返回我结果为“3,4”而不是3和4,与此代码:Request.QueryString集合返回错误的结果

Dim a As ArrayList = New ArrayList 
     For i = 0 To Request.QueryString("ChildAge").Count 
      a.Add(Request.QueryString("ChildAge")(i)) 
     Next 

它有什么问题?我怎样才能得到分离的值?

回答

3

QueryStringNameValueCollection,因此重复的关键值进行了排列为逗号分隔的列表(来自Add法):

如果指定的键在目标的NameValueCollection 实例已经存在,则指定值将以“value1,value2,value3”的形式添加到现有的以逗号分隔的 值列表中。

您可以使用GetValues检索string()对于给定的关键:

Dim childAges As String() = Request.QueryString.GetValues("ChildAge"); 
+0

感谢您的解释。 –

+0

非常感谢,挽救了我的一天 –

1

斯普利特参数为值的数组,然后你就可以通过

myArray = Request.QueryString("ChildAge").Split(", ") 
+0

嗯,好像这个解决方案的工作,即使它不正是我想要的。谢谢! –

1

您可以使用这样的迭代。

Dim a As ArrayList = New ArrayList 
     For i = 0 To Request.QueryString("ChildAge").Count 
      a.Add(Request.QueryString("ChildAge").Split(",")(i)) 
     Next 
+0

看起来不错。谢谢。 –