2010-07-29 13 views
8

Bây giờ, MVC 3 Preview 1 ở đây, chúng ta có thể sử dụng công cụ xem Razor (.cshtml). Nếu không tìm thấy chế độ xem, tôi nhận được lỗi này:Có đáng để xóa tìm kiếm .aspx/.ascx nếu tôi không định sử dụng chúng không?

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 

Sẽ rất đáng để loại bỏ tra cứu .aspx/.ascx, nếu tôi không định sử dụng chúng?

+0

Trong một [MVC4 Bước Bắt đầu video] (http://channel9.msdn.com/Series/Building-Web-Apps-with-ASP-NET-Jump -Start/Xây dựng-Web-Ứng dụng-với-ASPNET-Jump-Start-02-Xây dựng-và-Triển khai-Trang web-với-ASPNET-MVC-4), Scott Hanselman nói rằng bạn có thể đạt được một cải tiến hiệu suất nhỏ bằng cách làm điều này. – DOK

Trả lời

17

Tôi nghi ngờ bạn sẽ thu được hiệu suất đáng chú ý từ đó. Nó chỉ là một kiểm tra tập tin và nếu nó cũng được lưu trữ bởi động cơ có hầu như không có bất kỳ cải thiện hiệu suất. Tôi gọi nó là tối ưu hóa vi mô!

Tôi đoán nếu bạn biết bạn sẽ không được sử dụng WebForms, bạn chỉ có thể loại bỏ nó khỏi danh sách công cụ xem, như vậy:

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

Bằng cách đó nó sẽ không kiểm tra aspx/ascx các tập tin.

+2

Tôi sẽ khuyên bạn nên chọn tùy chọn đầu tiên, vì chúng tôi (nhóm MVC) hiện không đáp ứng bất kỳ thứ tự cụ thể nào của công cụ xem trong bộ sưu tập đó. – marcind

+0

@marcin: Có lẽ tốt nhất là nên tìm Công cụ Xem mà bạn không muốn và xóa chúng theo cách thủ công bằng cách định vị chỉ mục của chúng và xóa chúng. Bằng cách đó, nếu MVC bao giờ bổ sung thêm công cụ xem (hoặc các thành phần khác đăng ký công cụ xem của riêng mình), bạn sẽ không xóa chúng. – Eilon

+0

Đúng, cũng nghĩ về điều đó, nhưng khi anh ấy chỉ muốn sử dụng Cshtml tôi không thêm nó. Có thể trông giống như thế này: 'ViewEngines.Engines.Remove (ViewEngines.Engines.OfType (). Đầu tiên());' Hài hước bạn có thể viết ra bao nhiêu cách khác nhau! – aolde

4

Bộ luật đã được sửa đổi:

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