Wenn Sie ASP.NET Core 1 oder 2 verwenden, können Sie dies Microsoft.AspNetCore.WebUtilities.QueryHelpersin den Microsoft.AspNetCore.WebUtilities tun Paket .
Wenn Sie ASP.NET Core 3.0 oder höher verwenden, WebUtilities ist es jetzt Teil des ASP.NET SDK und erfordert keine separate Nuget-Paketreferenz.
So analysieren Sie es in ein Wörterbuch:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
Beachten Sie, dass im Gegensatz ParseQueryStringzu System.Web ein Wörterbuch vom Typ IDictionary<string, string[]>in ASP.NET Core 1.x oder zurückgegeben wirdIDictionary<string, StringValues> in ASP.NET Core 2.x oder höher zurückgegeben wird, sodass der Wert eine Sammlung von Zeichenfolgen ist. Auf diese Weise verarbeitet das Wörterbuch mehrere Abfragezeichenfolgenparameter mit demselben Namen.
Wenn Sie der Abfragezeichenfolge einen Parameter hinzufügen möchten, können Sie eine andere Methode verwenden für 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);
Mit .net Core 2.2 können Sie die Abfragezeichenfolge mit abrufen
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Sie erhalten eine Sammlung von Schlüssel: Wert-Paaren - so
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtiltieskann dieMono.HttpUtilityBibliothek sein .