Nếu bạn đang sử dụng ASP.NET Core 1 hoặc 2, bạn có thể thực hiện việc này Microsoft.AspNetCore.WebUtilities.QueryHelperstrong gói Microsoft.AspNetCore.WebUtilities .
Nếu bạn đang sử dụng ASP.NET Core 3.0 trở lên, WebUtilitieshiện là một phần của ASP.NET SDK và không yêu cầu tham chiếu gói nuget riêng biệt.
Để phân tích cú pháp thành từ điển:
var uri = new Uri(context.RedirectUri);
var queryDictionary = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query);
Lưu ý rằng không giống như ParseQueryStringtrong System.Web, điều này trả về một từ điển kiểu IDictionary<string, string[]>trong ASP.NET Core 1.x hoặc IDictionary<string, StringValues>trong ASP.NET Core 2.x trở lên, vì vậy giá trị là một tập hợp các chuỗi. Đây là cách từ điển xử lý nhiều tham số chuỗi truy vấn có cùng tên.
Nếu bạn muốn thêm một tham số vào chuỗi truy vấn, bạn có thể sử dụng một phương pháp khác trên 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);
Sử dụng .net core 2.2, bạn có thể lấy chuỗi truy vấn bằng cách sử dụng
var request = HttpContext.Request;
var query = request.query;
foreach (var item in query){
Debug.WriteLine(item)
}
Bạn sẽ nhận được một bộ sưu tập các cặp khóa: giá trị - như thế này
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtiltiescó thể làMono.HttpUtilitythư viện .