#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 ).