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

esto da error CS1002:; esperarazor pregunta por; al hacer uso (Html.BeginForm())

funciona si quito el nombre :

o si lo hago de esta manera: es más probable con su Name: literal

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

Respuesta

17

El problema. Como se encuentra dentro de un bloque de código, Razor supone que las siguientes líneas son líneas de código. Puede evitar esto ya sea anteponiendo Name: con @: o envolviéndolo con <text></text>. La etiqueta de texto es especial para Razor y se eliminará cuando el motor de vista lo analice.

La razón por la cual su <input> estará bien es que Razor reconoce que es una etiqueta de marcado y la escribirá en el flujo de respuesta, con Name: no puede suponer eso ya que no es una etiqueta de marcado real.

2

A veces, la afeitadora se confunde, por lo que deberá ajustar el código dentro de una etiqueta html. En caso de que no desee agregar etiquetas html adicionales solo porque la afeitadora no lo consigue, puede usar <text> que se eliminarán.

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

También puede hacer @@ Nombre: –

Cuestiones relacionadas