VB.net 中的拆分查询字符串找不到分隔符

Split query string in VB.net doesn't find the delimiter

我在 VB.net 应用程序的 asp.net 页面之间传递查询字符串。我通过执行以下操作收到字符串:

Dim pagename_username As String = Request.QueryString("field1")

查询字符串由一个URL和一个user_id组成,通过JavaScript发送。

然后通过执行以下操作在 VB 页面中拆分字符串:

  Dim parts As String() = pagename_username.Split(New String() {"|"}, StringSplitOptions.None)
            Dim pagename As String = parts(0)
            Dim username As String = parts(1)

这适用于以下查询字符串:

field1=http://**********/default.aspx|1

但给出了以下查询字符串的数组边界外错误:

field1=http://**********/docstore/browse.aspx?docstoreid=0&docstoretypeid=2|1

我怀疑是第二个字符串太长了??

如果是,我该如何解决?

如果不是,是什么问题?

在查询字符串中,您用“&”符号分隔参数。例如,以下查询字符串有 两个 参数:

www.someurl.com?param1=1&param2=2

你的情况:

field1=http://**********/docstore/browse.aspx?docstoreid=0&docstoretypeid=2|1

请注意,分隔符(即“|”)在第二个查询字符串参数中,即 docstoretypeid,不包含在 field1 的值中。因此,当您调用 Request.QueryString("field1") 时,您不会获得包含竖线分隔符的完整字符串。这就是为什么您的拆分失败并且出现异常的原因。