2010-07-29 4 views
8

Ora che MVC 3 Preview 1 qui, possiamo usare il motore di visualizzazione Razor (.cshtml). Se una vista non trovato, ottengo questo errore:Varrà la pena rimuovere la ricerca .aspx/.ascx se non prevedo di usarli?

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 

sarebbe il caso di rimuovere l'aspx/ascx ricerca, se non ho intenzione di usarli?

+0

In un [video MVC4 Jump Start] (http://channel9.msdn.com/Series/Building-Web-Apps-with-ASP-NET-Jump -Avvio/Costruzione-Web-App-con-ASPNET-Jump-Start-02-Building-and-Deploying-Websites-with-ASPNET-MVC-4), Scott Hanselman dice che si potrebbe ottenere un piccolo miglioramento delle prestazioni. – DOK

risposta

17

Dubito che si otterrà un notevole aumento delle prestazioni. È semplicemente un controllo dei file e se è anche memorizzato nella cache dal motore, non c'è praticamente alcun miglioramento delle prestazioni. Lo chiamerei micro-ottimizzazione!

Credo che se sai che non si utilizza WebForms, si può solo rimuoverlo dalla lista dei motori di vista, in questo modo:

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

In questo modo non sarà verificare la presenza di aspx/ascx File.

+2

Vorrei raccomandare la prima opzione, dato che noi (team MVC) non ci stiamo attualmente affidando a particolari motori di visualizzazione di quella raccolta. – marcind

+0

@marcin: Probabilmente è meglio trovare i motori di visualizzazione che non vuoi e rimuoverli manualmente individuandone l'indice e rimuovendoli. In questo modo se MVC aggiunge mai motori di visualizzazione aggiuntivi (o altri componenti registrano i propri motori di visualizzazione), non li rimuoverai. – Eilon

+0

Vero, pensato anche a questo, ma dato che voleva solo usare Cshtml, non l'ho aggiunto. Potrebbe sembrare qualcosa del genere: 'ViewEngines.Engines.Remove (ViewEngines.Engines.OfType (). First());' Divertente quanti modi diversi è possibile scrivere questo! – aolde

4

il codice è stato rivisto:

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