Visual Studio Intellisense и подсветка синтаксиса не являются одними из лучших, но в этом случае они предупреждают вас о том, что если условие не выполняется, вы можете получить недопустимую разметку и не следует винить ее за это.
Важно то, что ваш проект работает нормально, но вы можете подумать о том, чтобы перенести эту логику в помощники HTML, потому что если то, что вы говорите, верно, то это упрощенная версия того, что у вас есть в представлениях, я даже не хочу представить, какваш реальный код выглядит.
ИМХО иметь так много условной логики в представлении - это злоупотребление.Вам определенно следует рассмотреть возможность использования HTML-помощников или элементов управления, таких как MVCContrib Grid .
ОБНОВЛЕНИЕ:
Вы можете попробовать следующее:
<tr>
@foreach (var ourItem in ourList) {
if (ourItem != ourList.First()) {
@:<tr>
}
@:<td></td>
@:</tr>
}