如果使用的是ASP.NET Core 1或2,则可以Microsoft.AspNetCore.WebUtilities.QueryHelpers
在Microsoft.AspNetCore.WebUtilities程序包中执行此操作。
如果您使用的是ASP.NET Core 3.0或更高版本,WebUtilities
则它现在是ASP.NET SDK的一部分,并且不需要单独的nuget包引用。
要将其解析为字典:
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)
}
您将获得key:value对的集合-像这样
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
可能是Mono.HttpUtility
图书馆。