2010-05-07 7 views
8

Estoy desarrollando una nueva aplicación ASP.NET MVC 2.0 y queriendo usar los nuevos bloques de codificación ASP.NET 4.Bloques de codificación HTML - término de expresión inválido ':'

Mi código Ver contiene <%: Model.ActivityName %> embargo Visual Studio está informando:

Unexpected token

en la posición de la : (colon). Cuando ejecuto la aplicación obtengo el siguiente error de compilación:

Compiler Error Message: CS1525: Invalid expression term ':'

¿Qué me falta?

¡Salud para cualquier ayuda/consejo.

+1

¿En qué versión de VS está haciendo esto? –

+0

VS 2008. He creado mi aplicación como una aplicación MVC 2.0. ¿Esto no está utilizando automáticamente ASP.NET 4? –

+0

@Sam: al parecer, 2008. – SLaks

Respuesta

13

Esta característica es nueva en ASP.Net 4.0, que es a su vez nuevo en Visual Studio 2010.

En versiones anteriores, debe escribir

<%= Html.Encode(Model.ActivityName) %> 
+0

Gracias Schabse. Había omitido por completo la idea de que tal vez necesite desarrollar esto en VS 2010. Muy apreciado. –

+0

No necesita usar VS2010 para usar ASP.Net MVC. – SLaks

+0

Sí, lo sé. Solo quiero poder usar la función codeblocks. Este es un proyecto completamente nuevo, así que quiero usar las cosas más actualizadas que pueda. Todos mis proyectos de MVC 1 han sido desarrollados en 2008 –

1

como ya se ha señalado, se necesita usar la versión correcta de VS. si no puede y necesita cambiar todo su código para usar el método Html.EncodePhil Haack had a post about doing the opposite que podría ser útil.

No es que yo he atado, pero la búsqueda hacia atrás y vuelva a colocar en VS debe ser algo como

\<\%:b*{[^%]*}:b*\%\> 

reemplazado con

<%:= Html.Encode\(\1 \) %> 

o algo parecido a eso. Como digo, no tengo IDE en este momento para probar, así que pruébalo antes de ejecutarlo en todo tu proyecto.

+0

Cheers Sam y gracias por el enlace del blog. Lo leí ayer mismo de hecho. :) –

5

Parece que el marco de destino no está configurado en .NET Framework 4.0.

Para hacer esto, en el explorador de soluciones, haga clic con el botón derecho en la raíz del proyecto y seleccione las propiedades en el menú contextual.

En la pestaña de la aplicación, debería ver un menú desplegable para Target Framework. Cambie esto a .NET Framework 4.0.

Pruebe y compile para ver si el error desaparece.

+0

¡Bingo! Eso lo hizo por mí. Había estado trabajando en otro proyecto en 3.5 y eso se atascó cuando comencé la nueva solución. Gracias DevDave! – kdmurray

Cuestiones relacionadas