MvcMusicStore教程 - 视图无法解析模型属性

时间:2014-01-10 15:01:10

标签: c# asp.net-mvc asp.net-mvc-5

我正在使用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>

1 个答案:

答案 0 :(得分:1)

首先,您的视图键入的类型不同,应为

@model MvcMusicStore.ViewModels.StoreIndexViewModel

第二,我假设“Select from ...”字符串应如下所示:

<p>Select from @Model.NumberOfGenres</p>