我有一个名为Movie
的模型。我将创建一个电影列表并将其传递给视图。
这是控制器代码:
[Route("movies")]
public ActionResult AllMovies()
{
var movies = new List<Movie>
{
new Movie {Name = "Sherek"},
new Movie {Name = "Halk"},
new Movie {Name = "detector Gadget "}
};
return View(movies);
}
这是视图代码:
@using vidly.Models
@model List<Movie>
@{
ViewBag.Title = "AllMovies";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>AllMovies</h2>
<ul>
@foreach (var movie in Model.movies)
{
<li>movie </li>
}
</ul>
问题是它无法识别列表中的movies
。在第Model.movies
行中,我面临错误:
电影不包含电影定义,也不包含接受电影类型第一个参数的扩展方法电影 可以找到(你错过了使用指令或程序集 引用?)
答案 0 :(得分:0)
您必须将foreach
语句更改为此
@foreach (var movie in Model)
{
<li>
movie.Name
</li>
}
答案 1 :(得分:0)
尝试将您的模型从List<Movie>
更改为IEnumerable<Movie>
。
答案 2 :(得分:0)
将此代码复制到您的视图中,我认为它应该可以正常工作
@model List<Vidly.Models.Movie>
@{
ViewBag.Title = "All Movies";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>AllMovies</h2>
<ul>
@foreach (var movie in Model)
{
<li>@movie.Name</li>
}
</ul>
答案 3 :(得分:0)
感谢@Stephen Muecke。
我有@model List<Movie>
,它以某种方式表示Model = List<Movie>
。
因此,要实现列表中的每部电影,我必须做到
foreach(var movie in Model)