Jeśli używasz ASP.NET Core 1 lub 2, możesz to zrobić Microsoft.AspNetCore.WebUtilities.QueryHelpers
w pakiecie Microsoft.AspNetCore.WebUtilities .
Jeśli używasz ASP.NET Core 3,0 lub nowszego, WebUtilities
jest teraz częścią zestawu ASP.NET SDK i nie wymaga oddzielnego odwołania do pakietu NuGet.
Aby przeanalizować go w słowniku:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
Należy pamiętać, że w przeciwieństwie ParseQueryString
do System.Web zwraca słownik typu IDictionary<string, string[]>
w ASP.NET Core 1.x lub IDictionary<string, StringValues>
w ASP.NET Core 2.x lub nowszym, więc wartość jest zbiorem ciągów. W ten sposób słownik obsługuje wiele parametrów ciągu zapytania o tej samej nazwie.
Jeśli chcesz dodać parametr do ciągu zapytania, możesz użyć innej metody na 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);
Używając .net core 2.2 możesz uzyskać ciąg zapytania używając
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Otrzymasz zbiór par klucz: wartość - w ten sposób
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
może byćMono.HttpUtility
biblioteka .