我想在foreach之外添加一个变量,我应该在foreach循环中访问该变量
<table class="generalTbl">
<tr>
<th>Date</th>
<th>Location</th>
</tr>
@int i;
@foreach (var item in Model)
{
i=0;
<tr>
<td>
@Html.DisplayFor(modelItem => item.DueDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.location)
</td>
</tr>
}
</table>
上面的例子我添加了@int i;在foreach之外我尝试在foreach中访问它,就像i = 0;但它显示“当前上下文中不存在名称'i'”
如何访问循环内的变量?
答案 0 :(得分:21)
<table class="generalTbl">
<tr>
<th>Date</th>
<th>Location</th>
</tr>
@{
int i = 0;//value you want to initialize it with
foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.DueDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.location)
</td>
</tr>
}
}
</table>
答案 1 :(得分:4)
您必须使用代码块:
@{
int i;
}
Razor将以书面形式解析您的陈述的方式为@int
,后跟文字i
。因此,它会尝试输出int
的值,然后输出单词i
。
答案 2 :(得分:3)
使用代码块:
示例:
@{int i = 5;}
然后在循环中调用变量:
@foreach(var item in Model)
{
//i exists here
}
答案 3 :(得分:2)
通常最好在视图顶部声明变量。您可以在@foreach
:
@{
int i = 0;
}