这是不赞成的编码方式吗?ASP.Net MVC

Bar*_*osy 5 c# asp.net asp.net-mvc asp.net-mvc-4

我试图理解ASP.NET MVC是如何工作的,我被推荐遵循MVC音乐商店教程,但是我遇到了问题,因为我使用的是不同的(更新的)软件.

根据这个页面,我应该List在我的动作方法中添加一个类型StoreController.cs.然而根据Visual studio,这段代码似乎不正确或无法识别.错误说:Identifier expected;'new' is a keyword.我应该使用不同的代码,还是以某种方式在我的模型类中执行此操作?

public ActionResult Index()
{
   var genres = new List<Genre>
   {
       new Genre = { Name = "Disco" },
       new Genre = { Name = "Jazz" },
       new Genre = { Name = "Rock" }
   };

return View();
}
Run Code Online (Sandbox Code Playgroud)

不应该这样做这个工作吗?:

public ActionResult Index()
{
    //var genres = new List<Genre>
    //{
    //    new Genre = { Name = "Disco" },
    //    new Genre = { Name = "Jazz" },
    //    new Genre = { Name = "Rock" }
    //};

    var genres = new List<Genre>();
    genres.Add(new Genre() { Name = "Disco" });
    genres.Add(new Genre() { Name = "Jazz" });
    genres.Add(new Genre() { Name = "Rock" });

    return View();
}
Run Code Online (Sandbox Code Playgroud)

并且这不会每次我通过Index动作方法不断添加类型?

Col*_*inM 5

你的语法不正确.您的第一个代码段是一个对象初始值设定项,与您创建新实例Genre并分配其Name属性的第二个代码块没有什么不同,只是在您尝试分配的第一个案例{ Name = "Disco" }new Genre().

阅读有关Object Initializer的更多信息

public ActionResult Index()
{
    var genres = new List<Genre>
    {
       new Genre { Name = "Disco" },
       new Genre { Name = "Jazz" },
       new Genre { Name = "Rock" }
    };
    return View();
}
Run Code Online (Sandbox Code Playgroud)