MVC3 Razor с использованием Html.BeginForm проблемы
Это, вероятно, простая вещь, но у меня есть следующий код:
<div>
@using (Html.BeginForm()) {
<p>
...
</p>
}
</div>
И он продолжает жаловаться на то, что начало {bracket должно сопровождаться конечным} скобком, но его там, и все примеры кода, делающие подобные вещи, показывают это как способ сделать это, поэтому я немного озадачен тем, что почему это не работает...
Ответы
Ответ 1
Вероятно, есть ошибка в коде в тегах <p>
и </p>
.
Попробуйте прокомментировать это и посмотрите, что результат:
<div>
@using (Html.BeginForm()) {
<p>
@* = Server side comment out.
....
*@
</p>
}
</div>
Ответ 2
Это сработало для меня таким образом:
@{ using (Html.BeginForm(...))
{
<p>
Content here
</p>
}
}
Проблема заключается в том, что использование - это выражение, а не выражение, поэтому @csharpexpression
не будет работать. Для операторов синтаксис бритвы должен использовать @{csharpstatement}
. Но оператор using включает в себя собственную пару фигурных скобок, поэтому он немного искажается, как @{ using(...) { ... } }
Ответ 3
В моем случае я пропустил закрывающий div, который вызвал похожую ошибку.
Код ошибки:
<div>
@using (Html.BeginForm()) {
<div><p>
@* = Server side comment out.
....
*@
</p>
}
</div>
Постановили:
<div>
@using (Html.BeginForm()) {
<div><p>
@* = Server side comment out.
....
*@
</p></div>
}
</div>