gpt4 book ai didi

asp.net-mvc - MVC View - 查询的结果不能多​​次枚举

转载 作者:行者123 更新时间:2023-12-01 09:30:31 25 4
gpt4 key购买 nike

我有一个现有的存储过程,当它被调用时,它会在一个表格中填充几周的足球赛程。

然后,用户将从下拉列表中对每个夹具进行预测,然后我希望使用模型绑定(bind)将所有预测插入到一起。

我已经从我的角度展示了下面的相关代码,目前让我很头疼:

@model IEnumerable<PPLMVCNewOne.Models.sp_getMakeYourPredictions_Result>


@for (int i = 0; i < Model.Count(); i++)
{
<tr>
<td>
@Html.DisplayFor(m => m.ElementAt(i).Home_Team)

我想要做的是添加一个索引,这样我就可以在 Action 结果中建模绑定(bind)。

在 html 帮助行中,我收到以下错误:

一个查询的结果不能多​​次枚举。

谁能给我一个正确方向的指针?

最佳答案

您使用的是 IEnumerable ,这当然很好,但您需要了解您正在使用什么。枚举非常适合 for 循环之类的事情。显然,它们已经过优化,可以枚举,但优化意味着您只能这样做一次

因为枚举实际上并没有“自身长度”的概念(它被构建为吐出一个项目直到它用完项目,仅此而已)。它可以使用Count ,但它必须计算它,并且是计算成员总数以枚举它们并在它们经过时计算它们的唯一方法。这意味着你刚刚运行了枚举,所以你的 for 循环没有任何用处。

解决此问题的方法是将其转换为不存在此问题的其他类型,例如列表。它的效率不如 enumberable,但你别无选择。

您可以使用 ToList() 来执行此操作然后将其保存到一个 var 中,您将在 count 和 for 循环中都使用它,或者从一开始就使用 IList<> 之类的东西来转换您的模型或 ICollection<>而不是 IEnumerable<> .

关于asp.net-mvc - MVC View - 查询的结果不能多​​次枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15957761/

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