如何在 C# Net Core 中按照发送顺序处理 FromQuery 参数?

问题描述 投票:0回答:1

我有一个 GET 端点,它接收一个 FromQuery 对象,其中包含来自网格的列。用户可以根据需要对这些列进行排序,我必须尊重该顺序才能将它们导出到 CSV 文件。 如何找出 FromQuery 参数中列名的发送顺序? 我正在使用 Net Core 6 和 C#

我尝试使用 foreach 循环参数名称(属性),如本文所述: 如何循环访问类的属性? 但我只能按照参数类中声明的顺序获取参数。

我希望得到他们在 FromQuery 字符串中发送的真实顺序。

c# core
1个回答
0
投票

您可以直接在控制器中将查询字符串解析为字典。然后您就知道它们收到的顺序,因为它们是按该顺序添加到字典中的。

在控制器的操作方法中...

var qs = Request.QueryString;
var qsd = new Dictionary<string, string>();
string[] qsa = qs.Value.Split(new char[] {'&', '?'}, StringSplitOptions.RemoveEmptyEntries);
foreach(var item in qsa)
{
    if (string.IsNullOrEmpty(item)) continue;
    var keyAndValue = item.Split('=', 2, StringSplitOptions.RemoveEmptyEntries);
    qsd.Add(keyAndValue[0], keyAndValue[1]);
}
© www.soinside.com 2019 - 2024. All rights reserved.