ASP.NET MVC:将对象列表从控制器传递到视图

MrR*_*ot9 2 asp.net asp.net-mvc controller view

所以这段代码是我的Controller类。我正在将图书清单发送至View

public class BooksController : Controller
{
     public ActionResult Index(int page = 0)
     {
          List<Book> data = BookRepository.GetInstance().getAllBooks();
          return this.View(data);
     }
}
Run Code Online (Sandbox Code Playgroud)

所以我在上面写了这个引用模型类

@model BookStore.Models.Book

当我尝试像下面的代码一样进行迭代时,它说它不包含公共实例 for GetEnumerator,但我返回了一个对象列表,如何访问 for 循环中列表中的每个对象?

<ul>
   @foreach(var book in Model)
   {

   }
</ul>
Run Code Online (Sandbox Code Playgroud)

Tan*_*jel 5

问题出在下面一行:

@model BookStore.Models.Book
Run Code Online (Sandbox Code Playgroud)

您正在List<Book>从控制器传递到视图,但您的视图的模型类型是Book。因此,将上面的行写成如下:

@model List<BookStore.Models.Book>
Run Code Online (Sandbox Code Playgroud)