бритва просит; при использовании (Html.BeginForm ()) - PullRequest
6 голосов
/ 17 января 2011
@using(Html.BeginForm()){
Name:
    @Html.TextBoxFor(o => o.Name)
        <input type="submit" value="submit" />
    }

это дает ошибку CS1002:; Ожидается,

это работает, если я удаляю Имя:

или если я сделаю это так:

<form action="@Url.Action("AddHuman")" method="post">
Name:
    @Html.TextBoxFor(o => o.Name)
        <input type="submit" value="submit" />
</form>

Ответы [ 2 ]

17 голосов
/ 17 января 2011

Проблема, скорее всего, связана с вашим Name: литералом. Поскольку вы находитесь внутри блока кода, Razor предполагает, что следующие строки являются строками кода. Вы можете избежать этого, добавив Name: к @: или обернув его <text></text>. Текстовый тег является специальным для Razor и будет удален, когда он будет обработан механизмом просмотра.

Причина, по которой ваш <input> будет в порядке, заключается в том, что Razor распознает, что это тег разметки, и запишет его в поток ответов, при этом Name: не может предположить, что это не фактическая разметка. тег.

2 голосов
/ 21 июля 2011

Иногда бритва путается, поэтому вам нужно будет обернуть свой код в HTML-тег.Если вы не хотите добавлять дополнительные HTML-теги только потому, что бритва не получает их, вы можете использовать <text>, который будет удален.

@using(Html.BeginForm()){
   <text>
       Name:
       @Html.TextBoxFor(o => o.Name)
       <input type="submit" value="submit" />
   </text>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...