【问题标题】:Request.QueryString Collection return wrong resultRequest.QueryString 集合返回错误结果
【发布时间】:2026-01-21 20:20:05
【问题描述】:

我的查询字符串具有以下参数: ...&ChildAge=3&ChildAge=4 但是集合返回结果为“3,4”而不是 3 和 4,使用以下代码:

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

它有什么问题?如何获得分隔值?

【问题讨论】:

    标签: vb.net collections request.querystring


    【解决方案1】:

    QueryString 是一个NameValueCollection,因此重复的键值被连接为逗号分隔列表(来自Add 方法):

    如果指定的key已经存在于目标NameValueCollection中 例如,将指定的值添加到现有的逗号分隔 "value1,value2,value3" 形式的值列表。

    您可以使用GetValues 检索给定键的string()

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

    【讨论】:

    • 感谢您的解释。
    • 非常感谢,拯救了我的一天
    【解决方案2】:

    将参数拆分成值数组,然后就可以遍历了

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

    【讨论】:

    • 好吧,看起来这个解决方案很有效,即使它不是我想要的。谢谢!
    【解决方案3】:

    你可以这样使用。

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

    【讨论】:

      最近更新 更多