gpt4 book ai didi

javascript - 为什么从字典返回 JsonResult 会改变排序顺序?

转载 作者:行者123 更新时间:2023-12-01 00:31:02 28 4
gpt4 key购买 nike

我有以下 Controller 操作:

public JsonResult GetInvestors(int bank)
{
var investors = _context.Investors
.Where(i => i.BankNumber == bank)
.Select(i => new { InvestorId = i.InvestorId.ToString(), InvestorName = i.InvestorName + " (" + i.BankNumber + ")" })
.OrderBy(i => i.InvestorName)
.ToDictionary(i => i.InvestorId, i => i.InvestorName);

return Json(investors, JsonRequestBehavior.AllowGet);
}

下面的 javascript 调用该操作,现在仅启动调试器,以便我可以浏览结果:

function getInvestors(bank)
{
$.ajax
({
url: "/InvestorDetail/GetInvestors",
type: "POST",
data: { bank: bank },
dataType: "json",
success: function (returnedData) { debugger; }
});
}

如果我在 Controller 操作中观看investors,它会按投资者姓名排序,这就是我想要的。但是,当我进入 javascript 调试器并查看 returnedData 时,数据会按投资者 ID 排序。

或者,如果我将 OrderBy 放在 ToDictionary 之后并按 Value 排序,则在 javascript 调试器中,结果的 json 结构会有所不同,但它会像我想要的那样按投资者姓名排序。

为什么从字典返回时排序顺序会改变?

谢谢。

最佳答案

出于枚举的目的,字典中的每个项目都被视为表示值及其键的 KeyValuePair 结构。返回项目的顺序未定义。

参见official msdn documentation

不过,您可以使用排序字典,或者在客户端对其进行正确排序。

关于javascript - 为什么从字典返回 JsonResult 会改变排序顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58528433/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com