2010-07-29 8 views
8

Ahora que MVC 3 Preview 1 aquí, podemos usar el motor de vista Razor (.cshtml). Si no se encuentra un punto de vista, me sale este error:¿Valdría la pena eliminar la búsqueda de .aspx/.ascx si no planeo usarlas?

The view 'a' or its master was not found. The following locations were searched: 
~/Views/Home/a.aspx 
~/Views/Home/a.ascx 
~/Views/Shared/a.aspx 
~/Views/Shared/a.ascx 
~/Views/Home/a.cshtml 
~/Views/Shared/a.cshtml 

valdría para eliminar el .aspx/Ascx de consulta, si no planeo para usarlos?

+0

En un [video MVC4 Jump Start] (http://channel9.msdn.com/Series/Building-Web-Apps-with-ASP-NET-Jump -Start/Building-Web-Apps-with-ASPNET-Jump-Start-02-Building-and-Deploying-Websites-with-ASPNET-MVC-4, Scott Hanselman dice que puede lograr una pequeña mejora en el rendimiento haciendo esto. – DOK

Respuesta

17

Dudo que obtendría ninguna ganancia de rendimiento notable de eso. Es simplemente una verificación de archivos y si el motor lo almacena en la memoria caché, apenas mejora el rendimiento. ¡Lo llamaría micro-optimización!

supongo que si usted sabe que no va a utilizar formularios Web, usted podría quitarlo de la lista de motores de vista, así:

ViewEngines.Engines.Clear(); 
ViewEngines.Engines.Add(new RazorViewEngine()); 

De esa manera no va a comprobar si hay aspx/ascx archivos.

+2

Recomendaría la primera opción, ya que nosotros (el equipo de MVC) no estamos accediendo actualmente a ningún motor de vista particular en esa colección. – marcind

+0

@marcin: Probablemente sea mejor encontrar los motores de visualización que no desea y eliminarlos manualmente ubicando su índice y eliminándolos. De esta forma, si MVC alguna vez agrega motores de vistas adicionales (u otros componentes registran sus propios motores de visualización), no los eliminará. – Eilon

+0

Es cierto, pensé en eso también, pero como solo quería usar Cshtml, no lo agregué. Podría verse algo como esto: 'ViewEngines.Engines.Remove (ViewEngines.Engines.OfType (). First());' ¡Gracioso cuántas formas diferentes de escribir esto! – aolde

4

el código ha sido revisado:

ViewEngines.Engines.Clear(); 
ViewEngines.Engines.Add(new RazorViewEngine()); 
Cuestiones relacionadas