Is this deprecated way of coding? ASP.Net MVC
asp.net, asp.net-mvc, asp.net-mvc-4, c#
Solution
Your syntax is incorrect. Your first snippet is an object initializer and is no different than your second block of code where you create a new instance of `Genre` and assign its `Name` property, only in the first case you are attempting to assign `{ Name = "Disco" }` to `new Genre()`.
Read more on Object Initializer
public ActionResult Index()
{
var genres = new List<Genre>
{
new Genre { Name = "Disco" },
new Genre { Name = "Jazz" },
new Genre { Name = "Rock" }
};
return View();
}
Problem
I am trying to understand how ASP.NET MVC works and I have been recommended to follow the MVC Music Store Tutorial, however I am having problems since I am using different (more current) software. According to this page I should add a `List` of genres to my action method inside my `StoreController.cs`. However according to Visual studio, this piece of code seems to be incorrect or not recognized. The error says: `Identifier expected;'new' is a keyword`. Should I use different code or do this in my model class instead in some way? ``` public ActionResult Index() { var genres = new List<Genre> { new Genre = { Name = "Disco" }, new Genre = { Name = "Jazz" }, new Genre = { Name = "Rock" } }; return View(); } ``` Shouldn't something like this do the job?: ``` 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(); } ``` And doesn't this constantly add the genres everytime I would run through the Index action method?