Увеличение в представлении не показывает обновленное значение, показывающее только инициализированное значение asp.net mvc - PullRequest
0 голосов
/ 17 января 2019

вид

@{var i=0} 

<span>@i</span> //showing only initialized value not showing i value 1 or 2 or 5 or some other value

foreach (var item in Model.Boxlist)
{
    <p>@item.name</p>

    i++; //increment i here.
} 

i не показывает обновленное значение, а только показывает инициализированное значение, где я ошибаюсь. Скажите мне, пожалуйста, тэг please.p отображается 5 раз, потому что Модель имеет 5 элементов, но не показывает значение я 5.

1 Ответ

0 голосов
/ 17 января 2019

Проблема в том, что вы печатаете <span>@i</span> до выполнения цикла foreach (и, следовательно, до увеличения i). Вы можете переместить <span>@i</span> после цикла, чтобы увидеть ожидаемое поведение:

@{var i=0} 
foreach (var item in Model.Boxlist)
{
    <p>@item.name</p>
    i++;
} 
<span>@i</span>

Это даст:

<p>Foo</p>
<p>Bar</p>
<p>Baz</p>
<p>Qux</p>
<p>Quux</p>
<span>5</span>

Но, по-видимому, вы действительно хотите, чтобы <span>5</span> появился перед <p>.

В конечном счете, если i используется только для подсчета количества элементов в списке, просто используйте метод расширения Count() из Linq ((или Length* 1021). * если ваша модель Array или Count, если это ICollection<T>).

<span>@Model.Boxlist.Count()</span>
foreach (var item in Model.Boxlist)
{
    <p>@item.name</p>
}

Это даст:

<span>5</span>
<p>Foo</p>
<p>Bar</p>
<p>Baz</p>
<p>Qux</p>
<p>Quux</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...