Я недавно обновил проект с MVC 1 до MVC 3, и теперь я пробую Razor.
В одном представлении у меня есть блок кода foreach, но вложенный оператор if не выглядитхотеть @ перед ним.
Мой оригинальный код был:
@foreach(var r in Model.Results)
{
string css = r.Result.Count() > 0 ? "fail" : "pass";
<p class="@css"><strong>@r.Description</strong></p>
@if(r.Result.Count() > 0)
{
<p>Count: @r.Result.Count()</p>
<table>
<thead>
<tr>
<th>ID</th><th>Title</th><th>Description</th>
</tr>
</thead>
<tbody>
@foreach(var e in r.Result) {
<tr><td>@e.Id</td><td>@e.Title</td><td>@e.Description</td></tr>
}
</tbody>
</table>
}
}
Я получу ошибку времени выполнения с @if, которая говорит: Неожиданное ключевое слово "if" после "@" персонаж.Оказавшись внутри кода, вам не нужно добавлять префикс конструкций, таких как «if», к «@».
Если я удаляю @, код работает нормально.Я ожидал, что нужно @ из-за HTML, непосредственно предшествующего ему.Что меня смущает больше, так это то, что мне нужен символ @ перед вложенным foreach.Какие здесь правила игры?