Как подсчитать строки в таблице в MVC — asp.net

#asp.net #for-loop #foreach #count #row

#asp.net #для цикла #foreach #подсчет #строка

Вопрос:

На мой взгляд, у меня есть этот код foreach в MVC4:

 @foreach (var row in Model.Variables)
{
 <td>@row.Variable1.FirstOrDefault()</td>
 <td>@row.Variable2.FirstOrDefault()</td>  
}
  

Теперь я хочу записать в каждой строке номер (порядковый номер).

Я попробовал с этим кодом:

 @if (Model.Spremenljivke != null)
{
    int i = 0;
    foreach (var row in Model.Spremenljivke)
    {
        <tr align="center">
            <td>@i</td>
            <td>@row.Internal.First()</td>
            <td>@row.Exchangetimestamp.Add(Model.TimeZone.BaseUtcOffset)</td>
            <td>@row.Order.First()</td>
            <td>@row.MsgT.First()</td>
            <td>@row.Exchangetimestamp2.Add(Model.TimeZone.BaseUtcOffset)</td>
            i  ;
        </tr>

        <tr><td colspan="7"><hr/></td></tr>

    }
}
  

Проблема в том, что возвращает это:

 i  ;i  ;i   ...
Column i
0
0
0
0
...
  

Комментарии:

1. Почему вы не делаете то же самое, что и во втором примере? Просто объявляйте var i = 0; i и печатайте i каждый раз.

2. Если я вас правильно понял, я сделал это: перед Foreach я должен написать var i = 0; затем в <td>@i </td> ?

3. Да, я думаю, что это может быть хорошим решением (если я понимаю ваш вопрос).

4. Я попробовал это, и в <td> возвращает мне: 0

Ответ №1:

Я попробую ответить на ваш вопрос с помощью вашего измененного примера:

 @{ var i  = 0; }
@foreach (var row in Model.Variables)
{
 <td>@i.ToString()</td>
 <td>@row.Variable1.FirstOrDefault()</td>
 <td>@row.Variable2.FirstOrDefault()</td>  
 @i  ;
}
  

Я добавил переменную, необходимую для увеличения и отображения номера строки. Вы можете написать напрямую «i «, потому что вы находитесь в операторе foreach, управляемом razord, и @ не требуется.

Я надеюсь, что это может вам помочь.

Комментарии:

1. 🙁 это не работает, он помещает 0 в каждую строку, а i в виде текста над таблицей в одной строке (не в таблице), что-то вроде этого: i ; i ; i ;… но столько раз, сколько у меня есть строк в моей таблице (15).

2. Как вы думаете, это проблема в моих переменных, потому что они многозначны, это означает, что они могут быть равны нулю или некоторому значению? Вот почему возвращает мне только нули?

3. Извините, но проблема слишком странная. Я протестировал foreach, используя стандартный массив (строку), i отображается правильно.

4. Вы думаете, что проблема в Model.Variables? Потому что я возвращаю значение группы из контроллера в Model.Variables. Но, тем не менее, это не должно быть проблемой.

5. Пожалуйста, добавьте @ перед именем переменной i (это будет: @i , а не i ).