Ответ 1
Попробуйте добавить теги с @:
:
if (true)
{
@:<table>
@:<tbody>
}
...
if (true)
{
@:</tbody>
@:</table>
}
Этот код в представлении Razor:
if (true)
{
<table>
<tbody>
}
...
if (true)
{
</tbody>
</table>
}
не запускается. Он утверждает, что закрытие }
в первом выражении if()
отсутствует, и я предполагаю это из-за тега <table>
.
Есть ли способ обойти это, чтобы условно вставить теги <table>
?
Попробуйте добавить теги с @:
:
if (true)
{
@:<table>
@:<tbody>
}
...
if (true)
{
@:</tbody>
@:</table>
}
Вы можете вставить его как строки, затем они не обрабатываются как html и не мешают синтаксису:
@Html.Raw(true?"<table><tbody>":"")
@Html.Raw(true?"</tbody></table>":"")
Razor ожидает, что соответствующие теги закрытия будут находиться внутри инструкции по умолчанию.
Вы можете использовать специальный тег <text>
, чтобы помочь отключить Razor:
@if (true) {
<text>
<table>
<tbody>
</text>
}
Попробуйте использовать блоки кода бритвы, включив блоки if в оператор @{} или добавив if с помощью @, чтобы он отображался как @if:
http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx