2016-11-11 7 views
-2

私は初心者で、私は@foreachが何をしているのか分かりません。 この先生によってasp.net mvc 5で@foreachが何をするのか分かりません

@foreach (var item in Model) { 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => item.MaSach) 
     </td> 
     <td> 
      <img src="~/HinhAnhSP/@Html.DisplayFor(modelItem => item.AnhBia)" width="100" /> 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.TenSach) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem=> item.GiaBan) 
     </td> 
     <td> 
      @Html.ActionLink("Details", "Details", new { id = item.MaSach }) | 
      @Html.ActionLink("Add to Cart", "Add", "Cart", new { id = item.MaSach }, new {url ="" }) 
     </td> 
    </tr> 
} 
+1

を追加するには、この適切https://msdn.microsoft.com/en-us/library/ttw7t8t6.aspx – Bharat

答えて

1

foreachを書かれたコードは、コレクションのアイテムをループ構造である(実際には列挙が、今それを気にしない)とブラケット({})の内部にあるものは何でも繰り返しますループの各繰り返しで変数(この場合はitemという名前)を割り当てます。

あなたの場合、Modelは、私たちが表示していないタイプのアイテムのコレクションです。したがって、各反復では、すべてのHTMLコードを角括弧で囲み、各繰り返しで変数itemを現在の項目の内容に割り当てます。 Nameが最初の項目で文字列Hello1が含まれてい

class MyType { 
    public string Name; 
} 

、2番目の項目でHello2、など:

だから、

想像Modelは、次のように定義されたタイプMyType、の5つの項目のコレクションでした

だから、あなたが行う場合:

@foreach(var item in Model) { 
    <p>@(item.Name)</p> 
} 

結果のpかつてarsedは次のようになります。

<p>Hello1</p> 
<p>Hello2</p> 
<p>Hello3</p> 
<p>Hello4</p> 
<p>Hello5</p> 
+0

一つのことを読む:モデルは '@のmodel'宣言によって定義されます。例えば、ファイルの先頭に '@model IEnumerable 'またはそれに類するものがあります。 –

+0

'what foreach does'の簡単な答え:https://msdn.microsoft.com/en-us/library/ttw7t8t6。 aspx –

関連する問題