我有一个 GET 端点,它接收一个 FromQuery 对象,其中包含来自网格的列。用户可以根据需要对这些列进行排序,我必须尊重该顺序才能将它们导出到 CSV 文件。 如何找出 FromQuery 参数中列名的发送顺序? 我正在使用 Net Core 6 和 C#
我尝试使用 foreach 循环参数名称(属性),如本文所述: 如何循环访问类的属性? 但我只能按照参数类中声明的顺序获取参数。
我希望得到他们在 FromQuery 字符串中发送的真实顺序。
您可以直接在控制器中将查询字符串解析为字典。然后您就知道它们收到的顺序,因为它们是按该顺序添加到字典中的。
在控制器的操作方法中...
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]);
}