2011-01-11 9 views
5

Tengo un sitio web MVC2 que utiliza vistas de otros ensamblados. Para hacer esto, I marcó la vista como "Recurso incrustado".C# vista como recurso incrustado siempre muestra una vista anterior después de construir

Pude ver la vista pero ahora, cuando cambio la vista, ya no puedo ver los cambios.

La manera que llamo la vista como un recurso incrustado es similar a esto:

return View("~/Extension/Extensions.MyExtension.dll/" + 
    "Extensions.MyExtension.Views.MyItem.Details.ascx", entity); 

en este caso la parte de "extensión" está indicando que la vista se debe cargar como recurso incrustado. La siguiente parte indica los conjuntos que contiene la vista. La última parte es la ubicación de la vista (incluido el espacio de nombres).

¿Cómo puede ser que los datos de una vista anterior todavía se muestren después de que cambie todo el contenido de la vista. O incluso desmarque la vista como recurso incrustado.

Para asegurarme de tener el último ensamblado de Extensions.myExtension.dll, copié el conjunto en la carpeta bin del sitio web. Revisé el conjunto con un reflector para ver si la vista correcta está en el conjunto. Esta es la vista correcta, pero todavía veo la vista anterior.

Al cambiar el nombre de la vista se resuelve el problema temporalmente, pero no soy una buena solución para mí. Cuando cambio el nombre de la vista a lo que era, se muestra la vista anterior.

+0

¿Está ejecutando esto a través de IIS o el servidor dev? –

Respuesta

2

Casi me parece si los datos están en caché y los archivos DLL no se ven como cambiados. ¿Tiene la propiedad 'optimizeCompilations' en su web.config? Verifica si está configurado en falso. De lo contrario (si es verdadero), solo se modifican los archivos DLL.

Más información se puede encontrar en this página MSDN.

Por ejemplo:

<compilation debug="true" defaultLanguage="c#" targetFramework="4.0" 
    optimizeCompilations="false"> 
+0

Ese fue el problema exacto. Gracias – Jan

0

Es posible que tenga que volver a compilar el proyecto porque las vistas están incrustadas en el ensamblaje resultante en tiempo de compilación. Si simplemente cambia el archivo ASCX sin volver a compilar, los cambios no tendrán efecto si simplemente actualiza su navegador.

+0

He recompilado el proyecto, también he editado la pregunta. – Jan

0

Necesita reconstruir su proyecto completo. Si eso tampoco resuelve el problema, limpie el proyecto y luego compile.

Cuestiones relacionadas