Eğer ASP.NET Çekirdek 1 veya 2 kullanıyorsanız, sen ile yapabilirsiniz Microsoft.AspNetCore.WebUtilities.QueryHelpers
içinde Microsoft.AspNetCore.WebUtilities paketinde.
ASP.NET Core 3.0 veya WebUtilities
üstünü kullanıyorsanız , artık ASP.NET SDK'nın bir parçasıdır ve ayrı bir nuget paketi başvurusu gerektirmez.
Bir sözlüğe ayrıştırmak için:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
ParseQueryString
System.Web'den farklı olarak, bunun IDictionary<string, string[]>
ASP.NET Core 1.x veya IDictionary<string, StringValues>
ASP.NET Core 2.x veya daha büyük sürümlerde bir tür sözlüğü döndürdüğünü unutmayın , bu nedenle değer bir dizeler koleksiyonudur. Sözlük, aynı ada sahip birden çok sorgu dizesi parametresini bu şekilde işler.
Sorgu dizesine bir parametre eklemek istiyorsanız, şurada başka bir yöntem kullanabilirsiniz 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'yi kullanarak sorgu dizesini şu şekilde alabilirsiniz:
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Anahtar: değer çiftlerinden oluşan bir koleksiyon elde edeceksiniz - bunun gibi
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
olabilir .Mono.HttpUtility