หากคุณใช้ 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)
}
คุณจะได้รับชุดของคู่คีย์: ค่า - แบบนี้
[0] {[companyName, ]}
[1] {[shop, ]}
[2] {[breath, ]}
[3] {[hand, ]}
[4] {[eye, ]}
[5] {[firstAid, ]}
[6] {[eyeCleaner, ]}
Microsoft.AspNet.WebUtilties
อาจจะเป็นห้องสมุดMono.HttpUtility