视图
@{var i=0}
<span>@i</span> //showing only initialized value not showing i value 1 or 2 or 5 or some other value
foreach (var item in Model.Boxlist)
{
<p>@item.name</p>
i++; //increment i here.
}
i 不显示更新的值,仅显示错误的初始值,请告诉我。p标签显示5次,因为 Model 有5个项目,但不显示 i 5.
答案 0 :(得分:0)
问题是您正在执行<span>@i</span>
循环之前(因此,在foreach
递增之前)打印i
。您可以将<span>@i</span>
移至循环之后,以查看预期的行为:
@{var i=0}
foreach (var item in Model.Boxlist)
{
<p>@item.name</p>
i++;
}
<span>@i</span>
这将产生:
<p>Foo</p>
<p>Bar</p>
<p>Baz</p>
<p>Qux</p>
<p>Quux</p>
<span>5</span>
但是大概您真的希望<span>5</span>
出现在<p>
之前。
最终,如果仅使用i
来计算列表中的项目数,则只需使用Linq的Count()
扩展方法,或者(如果模型是Array
或Length
(如果是ICollection<T>
)。
<span>@Model.Boxlist.Count()</span>
foreach (var item in Model.Boxlist)
{
<p>@item.name</p>
}
这将产生:
<span>5</span>
<p>Foo</p>
<p>Bar</p>
<p>Baz</p>
<p>Qux</p>
<p>Quux</p>