Почему этот цикл Razor for выполняется с моим итератором вне условий цикла? [дубликат]C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему этот цикл Razor for выполняется с моим итератором вне условий цикла? [дубликат]

Сообщение Anonymous »


Отредактировано для повторного открытия, поскольку «тот же» вопрос не соответствует этой проблеме. Я понимаю, что использование итератора внутри лямбды вызывает проблему, поскольку лямбда вызывается по значению этого итератора позже. Но я не использую лямбду, и там нет объяснения, почему Blazor пытается получить доступ к @subInsp.Elements[it] вне цикла.
Я работаю над проектом MAUI Blazor, и у меня есть следующий цикл в коде:
@for (int it = 0; it < subInsp.Elements.Count; it++) { var bgColor = (это %2 == 0 ? Color.Default: Color.Secondary); @subInsp.Elements[it].DisplayName @subInsp.Elements[it].Value } Когда я запускаю приложение, я получаю исключение ArgumentOutOfRangeException, а когда я прослеживаю трассировку стека в вызове BuildRenderTree, я вижу, что subInsp.Elements.Count равен 22, но он также равен 22 (скриншот отладки ниже). Как это возможно?


Изображение


Я предполагаю, что это какая-то странная особенность процесса рендеринга Razor, но я не могу понять, чего мне не хватает.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»