我正在使用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>
答案 0 :(得分:1)
首先,您的视图键入的类型不同,应为
@model MvcMusicStore.ViewModels.StoreIndexViewModel
第二,我假设“Select from ...”字符串应如下所示:
<p>Select from @Model.NumberOfGenres</p>