Есть ли способ получить все пары имени/значения querystring в коллекции?
Есть ли способ получить все пары имен/значений querystring в коллекции?
Я ищу встроенный способ в .net, если нет, я могу просто разделить на и и загрузить коллекцию.
Ответы
Ответ 1
Да, используйте коллекцию HttpRequest.QueryString
:
Получает набор переменных строки запроса HTTP.
Вы можете использовать его следующим образом:
foreach (String key in Request.QueryString.AllKeys)
{
Response.Write("Key: " + key + " Value: " + Request.QueryString[key]);
}
Ответ 2
Ну, Request.QueryString
уже есть коллекция. В частности, это a NameValueCollection
. Если ваш код работает в ASP.NET, это все, что вам нужно.
Итак, чтобы ответить на ваш вопрос: Да, есть.
Ответ 3
Если у вас есть запрос, ТОЛЬКО представленный как строка, используйте HttpUtility.ParseQueryString, чтобы проанализировать его в NameValueCollection.
Однако, если это часть HttpRequest, используйте уже обработанное свойство QueryString вашего HttpRequest.
Ответ 4
Вы можете использовать LINQ для создания списка анонимных объектов, к которым вы можете получить доступ в массиве:
var qsArray = Request.QueryString.AllKeys
.Select(key => new { Name=key.ToString(), Value=Request.QueryString[key.ToString()]})
.ToArray();
Ответ 5
QueryString
свойство в классе HttpRequest
фактически NameValueCollection класс. Все, что вам нужно сделать, это
NameValueCollection col = Request.QueryString;