Ваш блок @foreach
устанавливает поле currentDataTag
для каждой итерации, поэтому в конце значение последней итерации находится там, где оно останавливается. Ваш код работает, и это хорошо, но теперь у вас есть поле со значением, которое может искажать то, что вы пытаетесь сделать позже.
Я бы, вероятно, удалил эту часть:
// Set currentDataTag
@{currentDataTag = dataTag;
}
и нашел бы способ сделать все, что нужно было сделать изначально, с помощью currentDataTag
в той же итерации l oop. Если он связан с другим компонентом, визуализируйте этот компонент также внутри l oop. Таким образом, вы можете избежать любых проблем, которые могут возникнуть в результате зависимости от состояния вне l oop, то есть, что, если это значение было изменено откуда-то еще или прочитано из неожиданного времени.
В крайнем случае, в конце каждой итерации l oop установите для currentDataTag
нулевое или базовое значение, чтобы впоследствии не прочитать устаревшие или неверные данные. Напишите нам немного кода для лучшего контекста, если это не поможет.