【发布时间】:2014-01-10 23:04:42
【问题描述】:
我正在使用 MVC 5 并遵循 MVC 4 Music Store tutorial,因为最新版本似乎不存在。
我已经在教程中提到了添加 StoreIndexViewModel 和相关控制器和视图的地方。
当我运行它并点击商店页面时,它会抛出以下内容:
*错误 1 'System.Collections.Generic.IEnumerable' 不包含 'genres' 的定义,并且没有扩展方法 'genres' 接受类型为 'System.Collections.Generic.IEnumerable' 的第一个参数找到(您是否缺少 using 指令或程序集引用?) c:\Users\abourke\dev\csdev\Training\MVC5\MvcMusicStore\MvcMusicStore\Views\Store\Index.cshtml 9 23 MvcMusicStore *
这是 StoreIndexViewModel:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MvcMusicStore.ViewModels
{
public class StoreIndexViewModel
{
public int NumberOfGenres { get; set; }
public List<string> Genres { get; set; }
}
}
以及相关StoreController的Index()方法:
//
// GET: /Store/
public ActionResult Index()
{
// Create a list of genres
var genres = new List<string> { "Rock", "Jazz", "Country", "Pop", "Disco" };
// Create our view model
var viewModel = new StoreIndexViewModel
{
NumberOfGenres = genres.Count(),
Genres = genres
};
return View(viewModel);
}
最后是 Index.chstml 视图:
@model IEnumerable<MvcMusicStore.ViewModels.StoreIndexViewModel>
@{
ViewBag.Title = "Browse Genres";
}
<h2>Browse Genres</h2>
<p>Select from @Model.genres</p>
<ul>
@foreach (string genreName in Model.Genres)
{
<li>
@genreName
</li>
}
</ul>
【问题讨论】:
-
它应该大写:
@Model.Genres而不是@Model.genres。还是只是拼写错误?
标签: c# asp.net-mvc asp.net-mvc-5