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

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


编译错误

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

编译器错误消息: 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

时间: 2024-08-08 02:02:41

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

学习ASP.NET MVC(七)——我的第一个ASP.NET MVC 查询页面

在本篇文章中,我将添加一个新的查询页面(SearchIndex),可以按书籍的种类或名称来进行查询.这个新页面的网址是http://localhost:36878/Book/ SearchIndex.该页面中用一个下拉框来显示种类,用一文本框让用户输入书籍的名称.当用户在点击“查询”按钮之后,页面会被刷新,显示用户的查询结果.控制器会根据用户提交查询参数,由动作方法(Action Motehd)去解析用户提交的参数值,并使用这些值来查询数据库. 第一步,创建SearchIndex查询页面    

学习ASP.NET MVC(五)——我的第一个ASP.NET MVC CURD页面

在上一篇文章中我们已经创建了实体类,在这一篇文章中,我将创建一个新的控制器类——BookController,使用BookController对Books表中的数据进行CURD操作的方法,并使用视图模板在浏览器中显示所查询到的书籍数据信息. 一.添加控制器类 在Visual Studio 的“解决方案资源管理器”中右键单击Controllers文件夹,并创建一个新的BookController控制器类.如下图. Visual Studio 会弹出一个“添加控制器”对话框(如下图). 在对话框中填

[ASP.NET MVC] URL网址路由包含&ldquo;/&rdquo;斜线

ASP.NET MVC 网址包含"/"斜线 笔者碰到一个状况是,URL带入的参数是可能有"/"斜线的(使用者输入)像是以下 1.运行正常 http://localhost:45405/Home/Product?name=HTC/M8/手机套 2.运行正常 http://localhost:45405/Home/Product?name='抗涨'白人牙膏_特大号 到目前为止都还没问题,但我们为了让URL好看以及优化SEO,我们会做URL Rewriting像是以下 1

[转] 利用 ResultFilter 实现 Asp.net Mvc 3 页面静态化

为了提高网站性能.和网站的负载能力,页面静态化是一种有效的方式,这里对于 asp.net mvc3 构架下的网站,提供一种个人认为比较好的静态话方式. 实现原理是通过 mvc 提供的过滤器扩展点实现页面内容的文本保存,直接上代码: 1 public class StaticFileWriteFilterAttribute : FilterAttribute, IResultFilter 2 { 3 public void OnResultExecuted(ResultExecutedContex

ASP.NET MVC载入页面常用方法

@RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到标签里有这样一条语句: @RenderBody() 其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间. 这个方法不需要参数,而且只能出现一次. @RenderPage 从名称可以猜出来这个方法是要呈现一个页

[转]Load ASP.NET MVC Partial Views Dynamically Using jQuery

本文转自:http://www.binaryintellect.net/articles/218ca630-ba50-48fe-af6e-6f754b5894aa.aspx Most of the times ASP.NET MVC views are rendered as a result of user  navigating to some action. For example, when a user navigates to /home/index in  the browser

[转][译]ASP.NET MVC 4 移动特性

此教程将讨论ASP.NET MVC 4 Web应用程序里的移动特性.对于此教程,可以使用 Visual Studio Express 2012 或者 Visual Web Developer 2010 Express Service Pack 1 ("Visual Web Developer 或者 VWD").  如果你已经有了专业版本的 Visual Studio 你也可以使用. 开始之前,确保你已经安装了以下列出的必需项. Visual Studio Express 2012 (推

ASP.NET没有魔法——ASP.NET MVC Razor与View渲染

对于Web应用来说,它的界面是由浏览器根据HTML代码及其引用的相关资源进行渲染后展示给用户的结果,换句话说Web应用的界面呈现工作是由浏览器完成的,Web应用的原理是通过Http协议从服务器上获取到对应的Html代码以及相关资源,使得浏览器能够完成正确的呈现工作. ASP.NET MVC作为一个Web应用构建框架View承担了UI显示的功能,在开发过程中View以Action的名称命名,当用户的请求被路由到某一Action方法时,ASP.NET MVC将会根据Action的名称来获取到对应的V

翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 6 - 业务逻辑

Part 3: 设计逻辑层:核心开发 如前所述,我们的解决方案如下所示: 下面我们讨论整个应用的结构,根据应用中不同组件的逻辑相关性,分离到不同的层中,层与层之间的通讯通过或者不通过限制.分层属于架构风格,在应用的长时间生命周期中,解决维护和扩展问题.所以,让我们在解决方案中添加一个类库项目,命名为 Application.Common. Application.Common : 这是一个类库项目, 提供公共功能,可以被不同的业务逻辑层使用.例如:安全,日志,跟踪,验证等等. 定义在这个层中的组