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.QueryHelpers
trong gói Microsoft.AspNetCore.WebUtilities .
Nếu bạn đang sử dụng ASP.NET Core 3.0 trở lên, WebUtilities
hiệ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ư ParseQueryString
trong 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.WebUtilties
có thể làMono.HttpUtility
thư viện .