【问题标题】:MvcMusicStore tutorial - View cannot resolve model propertiesMvcMusicStore 教程 - View 无法解析模型属性
【发布时间】: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


【解决方案1】:

首先,你的视图是用不同的类型输入的,应该是

@model MvcMusicStore.ViewModels.StoreIndexViewModel

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

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

【讨论】:

  • 啊。我是在两个小时前完成的,但肯定不是在更改和测试之间构建它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
相关资源
最近更新 更多