2012-09-07 7 views
17

tengo una vista de afeitar 1/mvc 3 existente, con unos pocos anidada if - muy simple, pero después de actualizar a la maquinilla de afeitar 2/mvc 4 se quejaba en tiempo de ejecución y compilar (BuildViews) sobre } expected. Antes funcionaba bien.¿Por qué mi vista de la máquina de afeitar se queja "} esperado" después de la actualización a la máquina de afeitar 2/mvc 4?

  • He comprobado están bien formados todos los elementos/cerrado
  • He comprobado que toda la {/} están equilibrados - este no es el tema de fin de archivo

¿Qué puede estar mal?

Respuesta

37

Se corrigieron varias rarezas heredadas de la afeitadora en la actualización razor 2/mvc 4; uno de gotcha interesante es que la afeitadora 1, la siguiente es legal (en una región de código):

string foo = @Some.Complex.Expression; 

Tenga en cuenta que la @ no es superfluo e incorrecta, pero que la maquinilla de afeitar 1 no se queja. Sin embargo, razor 2 es más quisquilloso y se confunde al informar el error } expected. Esta línea debe ser reemplazado con:

string foo = Some.Complex.Expression; 

Esto es un poco sutil, ya que el error que se produce tiene nada que ver con los apoyos ({/}), y puede haber algunas líneas lejos de la línea reportado.

+0

Vea también: http://aspnetwebstack.codeplex.com/workitem/390 –

+0

MUCHAS GRACIAS. Esto me salvó totalmente el día. El mismo problema ocurre si haces 'var @class =" something ";' –

+0

Sí. Esto fue * exactamente *. ¡Gracias! – Rolandus

Cuestiones relacionadas