【发布时间】:2019-05-22 11:11:32
【问题描述】:
当我尝试使用 foreach 语句输出表时,它会输出 2 个错误,指出 MovieViewModel 和 MovieVM 不存在。
这是 Index.cshtml 文件的一部分:
@foreach (MovieViewModel item in MovieVM)
{
<tr>
<td>@item.MovieName</td>
<td>@item.MovieCategory</td>
<td>@item.MovieYear
<td>@item.MoviePrice</td>
</tr>
}
</table>
这是 MoviesController.cs 文件的一部分:
List<MovieViewModel> MovieVM = new List<MovieViewModel>
{
new MovieViewModel {
MovieID = movie.MovieID,
MovieName = movie.MovieName,
MovieDescription = movie.MovieDescription,
MoviePrice = movie.MoviePrice,
MovieCategory = movie.MovieCategory,
MovieYear = movie.MovieYear
},
};
return View(MovieVM);
}
它输出这两个关于foreach的错误:
“类型或命名空间‘EmployeeViewModel’不存在于 命名空间“WebApplication3.Models”(您是否缺少程序集 参考?)”
和
“当前上下文中不存在名称‘MovieVM’”
【问题讨论】:
-
MovieViewModel item in MovieVM没有意义。 MovieVM 是在您的操作方法中声明的,而不是在视图中。它们是不同的上下文。我猜你可能想访问模型?在这种情况下使用MovieViewModel item in Model -
至于另一个错误,您显示的代码在任何地方都没有提到
EmployeeViewModel,所以问题一定来自您没有显示的东西。该错误应该告诉您它发生的行号。无论如何,听起来您可能在视图中缺少using声明。要么那个,要么你打错字并引用了错误的类 -
你可以在你的views文件夹
<add namespace="Example.ViewModels" />中添加缺少的命名空间<add namespace="Example.ViewModels" /> -
我也无法弄清楚你是如何得到
EmployeeViewModel不存在的。除非您在您的视图中提到了这一点,或者正如@ADyson 所说的那样打错了 -
我将 MovieVM 更改为 Model,该错误消失了,但另一个错误仍未修复。它一直说缺少参考。是不是某些 using 语句导致我出现此错误?
标签: c# asp.net asp.net-mvc razor