2010-07-29 46 views
8

现在MVC 3 Preview 1在这里,我们可以使用Razor(.cshtml)视图引擎。如果没有找到一个观点,我得到这个错误:如果我不打算使用它们,是否值得去除.aspx/.ascx查找?

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 

难道是值得删除的.aspx /查找名为.ascx,如果我不打算使用它们?

+0

在[MVC4跳转开始视频(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说,通过这样做你可能会取得微小的性能提升。 – DOK 2013-09-27 19:30:27

回答

17

我怀疑你会从中获得显着的性能收益。这只是一个文件检查,如果它也被引擎缓存,几乎没有任何性能改进。我会称之为微型优化!

我想如果你知道你不会使用的WebForms来,你可以只从视图引擎的列表中删除它,就像这样:

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

这样,它不会检查ASPX/ASCX文件。

+2

我会推荐第一个选项,因为我们(MVC团队)目前没有针对该集合中任何特定的视图引擎顺序。 – marcind 2010-07-29 18:25:20

+0

@marcin:最好找到你不想要的视图引擎,并通过定位它们的索引并删除它们来手动删除它们。这样,如果MVC添加额外的视图引擎(或其他组件注册他们自己的视图引擎),您将不会删除它们。 – Eilon 2010-07-29 22:53:59

+0

的确,也考虑到了这一点,但是因为他只想使用Cshtml,所以我没有添加它。可能看起来像这样:''''''''''''''''看看这个有多少种不同的方式可以写! – aolde 2010-07-30 08:22:42

4

代码已经修订:

ViewEngines.Engines.Clear(); 
ViewEngines.Engines.Add(new RazorViewEngine()); 
相关问题