Razor: добавление переменной в цикл без ее отображения - PullRequest
9 голосов
/ 16 ноября 2011

Привет, мне интересно, как мне добавить числа, не отображая их во время примера цикла 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 ]

19 голосов
/ 16 ноября 2011

Вы заменяете круглые скобки фигурными скобками и добавляете точку с запятой:

@(intVariable += item.MyNumberOfInteres)

становится:

@{ intVariable += item.MyNumberOfInteres; }

При этом вы не должны делать такие вещи в представлении,Если вам нужно это сделать, это просто означает, что ваша модель представления не адаптирована к вашему представлению.Так что адаптируйся.Этот вид информации должен был быть непосредственно интегрирован в модель представления и рассчитан в контроллере.

Помните: представление предназначено только для отображения данных, которые передаются из контроллера в форме модели представления.Если представление начинает вычислять переменные и заполнять его, оно больше не похоже на представление, а на код спагетти.

15 голосов
/ 16 ноября 2011

Удалите @ и префикс точкой с запятой, т. Е.

intVariable += item.MyNumberOfInteres;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...