ASP.NET MVC3中的视图中的局部变量的简单增量(剃刀)
嗯,这只是尴尬。我甚至无法弄清楚ASP.NET MVC3(Razor)中的一个视图中的简单增量。我已经完成了搜索,看起来Razor的文档非常稀少。下面是我曾尝试和惨败:ASP.NET MVC3中的视图中的局部变量的简单增量(剃刀)
@{
var counter = 1;
foreach (var item in Model.Stuff) {
... some code ...
@{counter = counter + 1;}
}
}
我也曾尝试@{counter++;}
只是踢和无济于事=),我将不胜感激,如果有人可以赐教。谢谢!
@{
int counter = 1;
foreach (var item in Model.Stuff) {
... some code ...
counter = counter + 1;
}
}
说明:
@{
// 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
我没有在这里找到答案在C#中是非常有用的 - 所以这里的人来到这个页面找C#示例工作示例:
@{
int counter = 0;
}
@foreach(Object obj in OtherObject)
{
// do stuff
<p>hello world</p>
counter++;
}
简单地说,就像我们已经在@foreach中一样,我们不需要将增量放在任何@ {}值中。
另一种清洁方法是:
<div>
@{int counter = 1;
foreach (var item in Model)
{
<label>@counter</label>
@Html.ActionLink(item.title, "View", new { id = item.id })
counter++;
}
}
</div>
如果你需要做的是显示的编号,成为一个更清洁的解决方案是增量和回报一气呵成:
@{
var counter = 0;
}
<section>
@foreach(var hat in Ring){
<p> Hat no. @(++counter) </p>
}
</section>
唯一对我有效的解决方案 – kobe
同上。我认为关键是围绕++计数器的括号。 –
请参阅下面的代码,以增加ASP.NET中的视图中的局部变量对我来说它的工作正常。
var i = 0;
@foreach (var data in Model)
{
i++;
<th scope="row">
@i
</th>....
}...
谢谢。我已经尝试了两个。第一个至少加载页面,但foreach循环没有超过第一个循环,这告诉我出现了计数器出了问题。第二个建议导致编译错误。 –
你有没有尝试将计数器声明为int?编辑其实,它是int当分配... –
是的,使用'int counter'为我工作。谢谢您的帮助! =) –