MVC3 Razor с использованием проблемы Html.BeginForm - PullRequest
30 голосов
/ 14 февраля 2011

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

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

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

Ответы [ 3 ]

35 голосов
/ 14 февраля 2011

Возможно, в коде внутри тегов <p> и </p> есть ошибка.

Попробуйте прокомментировать это и посмотрите, каков будет результат:

<div>
    @using (Html.BeginForm()) {
        <p>
                    @*  = Server side comment out.
                    ....
                    *@
        </p>
    }
</div>
3 голосов
/ 02 декабря 2011

У меня так получилось:

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

Проблема в том, что использование является выражением, а не выражением, поэтому @csharpexpression не будет работать. Для операторов синтаксис бритвы должен использовать @{csharpstatement}. Но оператор using содержит собственную пару фигурных скобок, поэтому он немного искажается, как @{ using(...) { ... } }

0 голосов
/ 02 мая 2019

В моем случае я пропустил закрывающий 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...