Подтвердить что ты не робот

MVC3 Razor с использованием Html.BeginForm проблемы

Это, вероятно, простая вещь, но у меня есть следующий код:

<div>
    @using (Html.BeginForm()) {
        <p>
            ...
        </p>
    }
</div>

И он продолжает жаловаться на то, что начало {bracket должно сопровождаться конечным} скобком, но его там, и все примеры кода, делающие подобные вещи, показывают это как способ сделать это, поэтому я немного озадачен тем, что почему это не работает...

4b9b3361

Ответ 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>