Якщо ви використовуєте ASP.NET Core 1 або 2, це можна зробити Microsoft.AspNetCore.WebUtilities.QueryHelpers
в пакеті Microsoft.AspNetCore.WebUtilities .
Якщо ви використовуєте ASP.NET Core 3.0 або новішої версії, WebUtilities
тепер це частина SDK ASP.NET і не потребує окремої посилання на нукетний пакет.
Щоб розібрати його у словнику:
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
бібліотека .