2010-12-11 11 views
25

Acabo de actualizar a ASP.NET MVC 3 RC2.Actualizado a MVC 3: CS0103: El nombre 'Ver' no existe en el contexto actual

La aplicación de ejemplo que estoy trabajando ahora produce el siguiente error, cada vez que se hace una vista cshtml:

CS0103: El nombre 'Ver' no existe en el contexto actual

Se produce un error en la línea:

@{ 
    View.Title = "MyView"; 
} 

... y falla en cualquier otro lugar que encuentre Ver en el código en el archivo Razor.

He copiado el archivo web.config de una nueva carpeta Ver aplicaciones en mi aplicación de muestra, pero el problema persiste.

Una nueva aplicación se ejecuta sin problemas.

También he reconstruido la solución, ejecute Clean Solution. Sin alegría.

No he trabajado en la muestra durante unos días. Por lo tanto, podría tratarse de un problema que no tiene nada que ver con RC2 ...

+0

Han comprobado las referencias, parecen ser la misma versión de archivo. EG: Versión del archivo System.Web.Mvc: 3.11209.0 para mi aplicación de muestra, desarrollada usando RC1 y una nueva aplicación creada usando RC2 – awrigley

Respuesta

27

Ha cambiado el nombre de 'ViewBag'. Puede leer más acerca de los cambios de RC1 -> RC2 here

+0

Gracias, había pasado por alto ese fragmento de la publicación de blog de Scott Guthrie. No sé por qué cree que es extraño: está bien tener lógica de visualización en las vistas. Un montón de muestras usan eso. Creo que ViewBag es un nombre horrible, pero es más descriptivo que simplemente Ver. – awrigley

+0

@awrigley seguro que está bien usar la lógica de visualización en la vista, pero el ViewBag está destinado a ser una colección de propiedades que normalmente se configuran en el controlador para usarse en la vista ... Estoy seguro de que tiene un uso válido caso, pero no veo por qué querría establecer los datos en el ViewBag dentro de la vista, esperaría solo 'leer' de él. – jeroenh

+2

seguro, pero la muestra MVC3 usa ese código ... – awrigley

4

que tenía el mismo problema, pero yo sólo traté de adivinar qué usar ahora, terminé usando:

@Page.Title = "The title" 

y funcionó, aunque no estoy seguro de lo que es la "mejor práctica" ahora

Además, pensé que el ViewBag es lo que solía ser modelo de vista, no sólo Ver

0

estoy añadiendo esto en caso de cualquier otra persona viene a través eso. Otra posible causa es que su diseño no se encontró. Implementé en IIS y (después de comentar la línea ofensiva) encontré que el diseño no se había copiado durante la implementación web. En mi caso, fue porque la Acción de compilación del diseño había cambiado de Contenido a Ninguno.

EDITAR: De hecho, tenía MVC 3 RC instalado. Lo anterior fue solo un síntoma diferente. La máquina de despliegue tenía RTM que expuso el problema. Como dice awrigley, se llama ViewBag ahora.

+0

gracias, pero el problema en mi caso fue el cambio de nombre de la propiedad a ViewBag. – awrigley

Cuestiones relacionadas