Wenn Sie ASP.NET Core 1 oder 2 verwenden, können Sie dies Microsoft.AspNetCore.WebUtilities.QueryHelpers
in 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 ParseQueryString
zu 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.WebUtilties
kann dieMono.HttpUtility
Bibliothek sein .