错误:“foreach语句无法对变量进行操作”

时间:2016-11-12 10:00:23

标签: c# asp.net asp.net-mvc visual-studio-2015 asp.net-core

我很难弄清楚如何解决此错误消息:

  

错误CS1579 foreach语句无法对“A1.Models.Reviews”类型的变量进行操作,因为“A1.Models.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

三江源

2 个答案:

答案 0 :(得分:0)

您需要替换

IEnumerable<A1.Models.Reviews>
@model Reviews

@model IEnumerable<A1.Models.Reviews>

为了将一系列评论传递给您的Razor View并能够迭代它。

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

话虽如此,您还需要确保将序列从控制器传递到View,以便这3个部分可以顺利运行。

答案 1 :(得分:0)

评论是您撰写的课程还是属性(我认为它是一个课程)。

如果我的猜测是正确的,我认为你的评论类应该公开IEnumerable类型的属性&lt; Review&gt; (或任何类似List&lt; Review&gt;)的类。 您在视图中的foreach循环应该循环此属性而不是类实例。

如果评论是属性,则应确认它是IEnumerable类型。

希望这会有所帮助