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の外で、i = 0のようにforeach内でアクセスしようとしました。しかし、「名前 'i'は現在のコンテキストに存在しません」と表示されます
ループ内で変数にアクセスするにはどうすればよいですか?
<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>
コードブロックを使用する必要があります。
@{
int i;
}
Razorが記述されたとおりにステートメントを解析する方法は@int
に続くリテラルi
。そのため、int
の値の後にWord i
が出力されます。
コードブロックを使用します。
例:
@{int i = 5;}
次に、ループ内で変数を呼び出します。
@foreach(var item in Model)
{
//i exists here
}
通常、ビューの上部で変数を宣言することをお勧めします。 @foreach
の前に、次のような変数を作成できます。
@{
int i = 0;
}