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?
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();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With