Если вы используете ASP.NET Core 1 или 2, это можно сделать с Microsoft.AspNetCore.WebUtilities.QueryHelpers
помощью Microsoft.AspNetCore.WebUtilities. пакета .
Если вы используете ASP.NET Core 3,0 или более WebUtilities
поздней версии , теперь он является частью пакета SDK ASP.NET и не требует отдельной ссылки на пакет nuget.
Чтобы разобрать его в словаре:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
Обратите внимание, что в отличие от ParseQueryString
System.Web, это возвращает словарь типа IDictionary<string, string[]>
в ASP.NET Core 1.x или IDictionary<string, StringValues>
в ASP.NET Core 2.x или выше, поэтому значение представляет собой набор строк. Вот так словарь обрабатывает несколько параметров строки запроса с одинаковым именем.
Если вы хотите добавить параметр в строку запроса, вы можете использовать другой метод для QueryHelpers
:
var parametersToAdd = new System.Collections.Generic.Dictionary<string, string> { { "resource", "foo" } };
var someUrl = "http://www.google.com";
var newUri = Microsoft.AspNetCore.WebUtilities.QueryHelpers.AddQueryString(someUrl, parametersToAdd);
Используя .net core 2.2, вы можете получить строку запроса, используя
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Вы получите набор пар ключ: значение - вот так
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
может бытьMono.HttpUtility
библиотека .