2016-11-11 83 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的變量。

所以,想象Model是的MyType類型,五個項目的集合,其定義爲:

class MyType { 
    public string Name; 
} 

Name包含在第一項串Hello1Hello2中的第二項,等等:

所以,如果你這樣做:

@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

'foreach'的簡短答案:https://msdn.microsoft.com/en-us/library/ttw7t8t6。 ASPX –

相關問題