错误:foreach语句不能操作变量

本文关键字:操作 变量 不能 语句 foreach 错误 | 更新日期: 2023-09-27 18:17:46

我很难弄清楚如何解决这个错误信息:

错误CS1579 foreach语句不能操作类型为'A1.Models的变量。评论"因为"a1 .模型。"Reviews"不包含"GetEnumerator"的公共定义A1..NETCoreApp,Version=v1.0

@foreach (var item in Model)
                {
                    <content>
                        <header>
                            <hr id="ReviewsSide" />
                            <h6><b>&#64 @Html.DisplayFor(ModelItem => item.Heading)</b></h6>
                        </header>
                        <p>
                            Rating;
                            @{
                                int numStars = 0;
                                if (item.Rating == 5)
                                {
                                    numStars = 5;
                                }
                                else if (item.Rating == 4)
                                {
                                    numStars = 4;
                                }
                                else if (item.Rating == 3)
                                {
                                    numStars = 3;
                                }
                                else if (item.Rating == 2)
                                {
                                    numStars = 2;
                                }
                                else
                                {
                                    numStars = 1;
                                }

                                for (int i = 0; i < numStars; i++)
                                {
                                    <span style="color: #f8bd08; ">&#x2605;</span>
                                }
                                for (int i = 0; i < 5 - numStars; i++)
                                {
                                    <span>&#x2606;</span>
                                }

                            }
                        </p>
                 }

任何想法?

我已经添加了以下代码到我的cshtml页面的顶部,但仍然是相同的错误信息:

IEnumerable<A1.Models.Reviews>
@model Reviews

谢谢

错误:foreach语句不能操作变量

你需要替换

IEnumerable<A1.Models.Reviews>
@model Reviews

@model IEnumerable<A1.Models.Reviews>

为了将一系列评论传递给你的Razor视图,并能够迭代它。

显示的错误意味着传递的类型不是一个序列,尽管你不能迭代它。

话是这么说,你还需要确保你正在传递一个序列从你的控制器到你的视图,这样这3部分工作没有任何问题。

Is Reviews是你写的一个类或者一个属性(我想它是一个类)

如果我的猜测是正确的,我认为你的评论类应该公开一个类型为IEnumerable(或任何派生类,如List)。视图中的foreach循环应该在这个属性上循环,而不是在类实例上循环。

如果Reviews是一个属性,那么你应该确认它是IEnumerable类型。

希望对大家有所帮助