我已经走到了MVC音乐商店教程的最后,我一直在改变我喜欢的东西,在教程中,Store允许你按类型浏览并调出该类型的所有专辑,我已经改变了一切,所以它会显示所有艺术家的名单而且运行正常,直到您点击艺术家,它不会显示该艺术家的专辑。
编译器错误消息:CS1579:foreach语句无法对“MVCMusicStore.Models.Album”类型的变量进行操作,因为“MVCMusicStore.Models.Album”不包含“GetEnumerator”的公共定义
这是我收到的错误消息,是否有人知道如何修复此问题,以便艺术家调出相册?
@model MVCMusicStore.Models.Album
@{
ViewBag.Title = "Browse Albums";
}
<div class="genre">
<h3><em>@Model.Artist</em> Albums</h3>
<ul id="album-list">
@foreach (var album in Model)
{
<li>
<a href="@Url.Action("Details",
new { id = album.AlbumId })">
<img alt="@album.Title"
src="@album.AlbumArtUrl" />
<span>@album.Title</span>
</a>
</li>
}
</ul>
</div>
答案 0 :(得分:3)
您可以将ActionResult更改为以相册列表作为模型返回
public ActionResult BrowseAlbums()
{
var albums = storeDB.Albums.ToList();
return View(albums);
}
然后在您的视图中,您可以遍历IEnumerable集合
@model IEnumerable<MvcMusicStore.Models.Album>
...
@foreach (var album in Model)
答案 1 :(得分:3)
验证StoreManagerIndexview Page指令。
应该如下所示
<@Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<IEnumerable<MvcMusicStore.Models.Album>>">
答案 2 :(得分:1)
错误告诉您Album
没有实现IEnumerable
,这有意义,因为它不是集合类型。我假设您想要遍历Album
的集合,而不是Album
本身的实例。