Цикл в строке request.querystring в VB.NET - PullRequest
2 голосов
/ 19 февраля 2009

Я пытаюсь перебрать строку запроса и извлечь определенные значения, как в:

?ProductID=1234&ProductID=4321&Quantity=1

Для каждого значения рядом с ProductID я хочу выполнить некоторую логику. Но я не уверен, как добраться до ценностей. Есть идеи?

Ответы [ 6 ]

6 голосов
/ 19 февраля 2009

Если в строке запроса содержится более одного значения с одним и тем же ключом, вы можете использовать метод NameValueCollection.GetValues ​​, который возвращает массив строк:

dim productID as string
for each productID  in Page.Request.QueryString.GetValues("ProductID")
  ' do something with productID
next productID  
4 голосов
/ 19 февраля 2009

Вот некоторый непроверенный код psuedo, который должен работать для кода на странице. Надеюсь, это поможет.

dim key as string
dim list as new arraylist()
for each key in Page.Request.QueryString.Keys
 if key = "ProductID" then
   list.add(Page.Request.QueryString(key))
 end if
next key

' do somthing with the list of product id's
2 голосов
/ 19 февраля 2009
Dim productID = Request.Querystring("ProductID")
Dim quantity = Request.Querystring("Quantity")
1 голос
/ 19 февраля 2009

Попробуйте это. Работает только в VB9.

Dim queryString = GetQueryString()
queryString = queryString.SubString(1) 'Remove ?
Dim ids = queryString. _
  Split("&"c). _
  Select(Function(x) x.Split("="c)). _
  Where(Function(x) x(0) = "ProductId" ). _
  Select(Function(x) x(1))
1 голос
/ 19 февраля 2009
Dim sQS as String = Request.QueryString.ToString
For Each eItem In Split(sQS, "&")
Dim sName As String = Left(eItem, InStr(eItem & "=", "=") - 1)
Response.Write(sName _
& " = " & Request.QueryString(sName) _
& "<br>")
Next

и это короче, но основано на той же идее

For Each Key As String In Request.QueryString.Keys
Response.Write(Key & " = " & Request.QueryString(Key) & "<br>")
Next
0 голосов
/ 12 марта 2018

Для чтения Value из get Parameter используйте Request.QueryString.Item("param")

...