2017-05-07 11 views
5

ASP.NET MVCの仕組みを理解しようとしていて、MVC Music Store Tutorialに従うことをお勧めしましたが、別の(より最新の)ソフトウェアを使用しているので問題があります。これは推奨されていないコーディング方法ですか? ASP.Net MVC

thisページによると、私の行動方法には、StoreController.csの中にジャンルのListを追加する必要があります。しかし、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(); 
} 

このような何かが仕事をすべきではない?:

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(); 
} 

そして、これは常にジャンルを追加しません毎回私はインデックスのアクションメソッドを介して実行しますか?

答えて

5

構文が正しくありません。最初のスニペットはオブジェクト初期化子であり、新しいインスタンスGenreを作成し、Nameプロパティを割り当てる2番目のコードブロックと同じです。最初のケースでは{ Name = "Disco" }new Genre()に割り当てます。あなたの2番目の質問に答えるためにObject Initializer

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

ああ、 "括弧の前の記号。 – Barrosy

2

読むよりは、はい、(メモリ内に完全にある)、そのリストを作成してから、アクションを実行するたびに破棄されます。これはサンプルコードにすぎません。アプリケーションが複雑な場合は、おそらく他の場所からこのようなリストが得られます。また、コードはこのリストでは何もしていないようですが、それは除外されていると仮定しています。おそらくモデルやビューバックなどの一部としてそれを必要としています。

関連する問題