2016-10-13 8 views
2

の場合には、私はかなり理解していない何を意味しstrongly typed models syntaxは、モデルパラメータは、強く型付けされたコンテナモデル

@model IEnumerable<MvcMovie.Models.Movie> 

@{ 
    ViewData["Title"] = "Index"; 
} 

<h2>Index</h2> 

<p> 
    <a asp-action="Create">Create New</a> 
</p> 
<table class="table"> 
    <thead> 
     <tr> 
      <th> 
       @Html.DisplayNameFor(model => model.Genre) 
      </th> 
      <th> 
       @Html.DisplayNameFor(model => model.Price) 
      </th> 
      <th> 
       @Html.DisplayNameFor(model => model.ReleaseDate) 
      </th> 
      <th> 
       @Html.DisplayNameFor(model => model.Title) 
      </th> 
      <th></th> 
     </tr> 
    </thead> 

は、なぜ我々はこのようGenreプロパティにアクセスできますか?

@Html.DisplayNameFor(model => model.Genre) 

私はここmodelは、容器全体を参照することを考えた:

@model IEnumerable<MvcMovie.Models.Movie> 

は私が間違っているのでしょうか?

+1

私は、[このSOポスト](http://stackoverflow.com/questions/39029941/asp-net-mvc-how-use-displaynamefor-in信じますテーブルの見出しと本文の作成)があなたの質問に答えます。 – Michael

答えて

-1

表示したコードを実行しようとしましたか?私はそれが動作するとは思わない。あなたがリンクしているチュートリアルのように、@model MvcMovie.Models.Movie@model IEnumerable<MvcMovie.Models.Movie>の違いをクリアするためにdiv(黄色のハイライトを使用)が表示されているようです。

だから、正しい方法は次のようになります。

@model IEnumerable<MvcMovie.Models.Movie> 
@foreach (var item in Model) { 
     <tr> 
      <td> 
       @Html.DisplayFor(modelItem => item.Genre) 
      </td> 
     @* ... *@ 
     </tr> 
} 
+0

ナー、それは動作します。そして、私が再び提供したリンクを見てみることを強くお勧めします – FrozenHeart

関連する問題