Je veux ajouter une variable en dehors de foreach et je devrais accéder à cette variable à l'intérieur de la boucle 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>
L'exemple ci-dessus, j'ai ajouté @int i; en dehors de la foreach et j'ai essayé d'y accéder à l'intérieur de la foreach comme i = 0; Mais il montre "Le nom 'i' n'existe pas dans le contexte actuel"
Comment puis-je accéder à la variable à l'intérieur de la boucle?
<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>
Vous devez utiliser un bloc de code:
@{
int i;
}
La façon dont Razor analysera votre déclaration telle qu'elle est écrite est @int
suivi d'un littéral i
. Par conséquent, il essaiera de sortir la valeur de int
, suivie du mot i
.
Utilisez un bloc de code:
Exemple:
@{int i = 5;}
Appelez ensuite la variable dans votre boucle:
@foreach(var item in Model)
{
//i exists here
}
Il est généralement préférable de déclarer vos variables en haut de la vue. Vous pouvez créer une variable comme celle-ci, avant le @foreach
:
@{
int i = 0;
}