我很难弄清楚如何解决此错误消息:
错误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>@ @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; ">★</span>
}
for (int i = 0; i < 5 - numStars; i++)
{
<span>☆</span>
}
}
</p>
}
有什么想法吗?
我已将以下代码添加到我的cshtml页面顶部,但仍然显示相同的错误消息:
IEnumerable<A1.Models.Reviews>
@model Reviews
三江源
答案 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类型。
希望这会有所帮助