我是新手,我不知道@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>
}
答案 0 :(得分:1)
foreach
是一个循环遍历集合项的构造(实际上是一个枚举,但现在不记得了)并重复括号内的任何内容({
,}
)对于每个项目,在循环的每次迭代中分配一个变量(在这种情况下命名为item
。
在您的情况下,Model
是项目的集合(某些类型,您尚未向我们展示)。因此,在每次迭代时,它将在括号之间写入所有HTML代码,在每次迭代时为当前项的内容分配一个名为item
的变量。
因此,假设Model
是五个类型为MyType
的项目的集合,其定义为:
class MyType {
public string Name;
}
其中Name
在第一项中包含字符串Hello1
,在第二项中包含Hello2
,等等:
所以,如果你这样做:
@foreach(var item in Model) {
<p>@(item.Name)</p>
}
解析后的结果将是:
<p>Hello1</p>
<p>Hello2</p>
<p>Hello3</p>
<p>Hello4</p>
<p>Hello5</p>