Asp.Net MVC Views页面不包含“GetEnumerator”的公共定义

时间:2021-08-16 23:06:42

“/”应用程序中的服务器错误。


编译错误

说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS1579: “Web.Models.Book”不包含“GetEnumerator”的公共定义,因此 foreach 语句不能作用于“Web.Models.Book”类型的变量

源错误:

 
行 16:     <td>操作</td>
行 17: </tr>
行 18: @foreach (var item in Model)
行 19: {
行 20: <tr>

View代码:

@model List<Web.Models.Book>
@{
ViewBag.Title = "Index";
} <h2>Index</h2>
@Html.ActionLink("add", "add", "book")
<br />
<br />
<table>
<tr>
<td>ID</td>
<td>名称</td>
<td>价格</td>
<td>时间</td>
<td>操作</td>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.ID</td>
<td>@item.name</td>
<td>@item.price</td>
<td>@item.time</td>
<td>操作</td>
</tr>
}
</table>

解决方法:

出错的就是第一行,因为默认的model不能使用foreach功能,所以得转换一下,把第一行修改为以下代码即可

@model List<Web.Models.Book>

@model ICollection<Web.Models.Book>

至于为何请移步http://www.cnblogs.com/flyfish2012/archive/2013/01/22/2871273.html