В моем текущем проекте есть много сложных HTML-отчетов, где мы выполняем много условного рендеринга TR и TD с помощью рядов и colspans.
Иногда это может выглядеть (это очень упрощено):
<tr>
@foreach (var ourItem in ourList) {
if (ourItem != ourList.First()) {
<tr>
}
<td></td>
</tr>
}
Однако, Razor утверждает: "В цикле foreach отсутствует закрывающий" } "символ". (в Visual Studio)
Я попытался обернуть <tr>
в <text></text>
, из-за чего проблема закрытия закрывается, только чтобы найти это при запуске: "Encounted end tag" tr "без соответствующего начального тега. теги должным образом сбалансированы".
Как бы я сделал такой условный рендеринг, убеждая Razor вообще не беспокоиться о HTML, потому что HTML сбалансирован, когда все петли завершены. Или, по крайней мере, это было так, когда использовался ASP.NET View Engine.