2011-01-17 15 views
6
@using(Html.BeginForm()){ 
Name: 
    @Html.TextBoxFor(o => o.Name) 
     <input type="submit" value="submit" /> 
    } 

daje to błąd CS1002:; Oczekujebrzytwa prosi o; podczas używania (Html.BeginForm())

to działa jeśli usunąć Nazwa:

czy robię to tak:

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

Odpowiedz

17

Problem jest najprawdopodobniej ze swoją Name: dosłowne. Ponieważ znajdujesz się w bloku kodu, Razor zakłada, że ​​następne linie są liniami kodu. Możesz tego uniknąć, dodając Name: z @: lub owijając je przy pomocy <text></text>. Tag tekstowy jest specjalny dla maszynki Razor i zostanie usunięty, gdy zostanie przeanalizowany przez mechanizm wyświetlania.

Powód, dla którego twoje <input> będzie w porządku, brzmi: Razor rozpoznaje, że jest znacznikiem znacznika i zapisze go w strumieniu odpowiedzi, z Name: nie może założyć, że nie jest on faktycznym znacznikiem znacznika.

2

Czasami maszynka do golenia jest zdezorientowana, więc będziesz musiał owinąć swój kod wewnątrz znacznika html. Jeśli nie chcesz dodawać dodatkowych znaczników html tylko dlatego, że brzytwa go nie pobiera, możesz użyć <text>, który zostanie usunięty.

@using(Html.BeginForm()){ 
    <text> 
     Name: 
     @Html.TextBoxFor(o => o.Name) 
     <input type="submit" value="submit" /> 
    </text> 
} 
+0

Możesz również wykonać: @@ Name: –

Powiązane problemy