Simple incrément d'une variable locale dans les vues en ASP.NET MVC3 (Razor)
eh Bien, c'est juste embarrassant. Je ne peux même pas comprendre un simple incrément dans une de mes vues en ASP.NET MVC3 (Razor). J'ai fait des recherches et il semble que la documentation de Rasoir est assez clairsemé. Voici ce que j'ai essayé et échoué lamentablement:
@{
var counter = 1;
foreach (var item in Model.Stuff) {
... some code ...
@{counter = counter + 1;}
}
}
j'ai aussi essayé @{counter++;}
juste pour le plaisir et en vain=) j'apprécierais que quelqu'un puisse m'éclairer. Merci!
5 réponses
@{
int counter = 1;
foreach (var item in Model.Stuff) {
... some code ...
counter = counter + 1;
}
}
Explication:
@{
// csharp code block
// everything in here is code, don't have to use @
int counter = 1;
}
@foreach(var item in collection){
<div> - **EDIT** - html tag is necessary for razor to stop parsing c#
razor automaticaly recognize this as html <br/>
this is rendered for each element in collection <br/>
value of property: @item.Property <br/>
value of counter: @counter++
</div>
}
this is outside foreach
Je n'ai pas trouvé la réponse ici était très utile dans c# - donc voici un exemple de travail pour quiconque vient à cette page à la recherche de l'exemple c#:
@{
int counter = 0;
}
@foreach(Object obj in OtherObject)
{
// do stuff
<p>hello world</p>
counter++;
}
simplement, comme nous sommes déjà dans le @ foreach, nous n'avons pas besoin de mettre l'incrément à l'intérieur d'aucune valeur @ {}.
si tout ce que vous avez à faire est d'afficher la numérotation, une solution encore plus propre est increment-and-return en une seule fois:
@{
var counter = 0;
}
<section>
@foreach(var hat in Ring){
<p> Hat no. @(++counter) </p>
}
</section>
un Autre chiffon propre approche serait:
<div>
@{int counter = 1;
foreach (var item in Model)
{
<label>@counter</label>
@Html.ActionLink(item.title, "View", new { id = item.id })
counter++;
}
}
</div>
voir le code suivant pour l'incrément d'une variable locale dans les vues en ASP.NET ça marche très bien pour moi.
var i = 0;
@foreach (var data in Model)
{
i++;
<th scope="row">
@i
</th>....
}...