剃刀:在循环中添加变量而不显示它

时间:2011-11-16 13:11:29

标签: c# asp.net-mvc-3 loops razor foreach

您好我想知道如何在foreach循环中添加数字而不显示它们 例如:

@{ int intVariable = 0; }

@foreach(var item in @Model.Collection)
{
    @(intVariable += item.MyNumberOfInteres) //->how can I calculate this without it being rendered to the website ?

    //some Html code.......
}

有人可以帮忙吗?

欢呼声
sushiBite

2 个答案:

答案 0 :(得分:19)

用括号替换括号并添加一个尾随分号:

@(intVariable += item.MyNumberOfInteres)

变为:

@{ intVariable += item.MyNumberOfInteres; }

据说你不应该在视图中做这样的事情。如果您需要这样做,这只是意味着您的视图模型不适合您的视图。所以适应它。这种信息应该直接集成在视图模型中并在控制器中计算。

请记住:视图仅用于显示以视图模型的形式从控制器传递的数据。如果一个视图开始计算变量和东西它不再像一个视图而是意大利面条代码。

答案 1 :(得分:15)

用分号删除@和前缀,即

intVariable += item.MyNumberOfInteres;