2010-07-29 19 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()); 
相關問題