我注意到Asp.net MVC 3在.cshtml文件之前搜索.aspx文件。我可以更改此搜索顺序吗?怎么做?
调试时我遇到以下异常:
The view 'Reset' or its master was not found. The following locations were searched:
~/Views/Demo/Reset.aspx
~/Views/Demo/Reset.ascx
~/Views/Shared/Reset.aspx
~/Views/Shared/Reset.ascx
~/Views/Demo/Reset.cshtml
~/Views/Demo/Reset.vbhtml
~/Views/Shared/Reset.cshtml
~/Views/Shared/Reset.vbhtml
我从中得出结论,首先搜索旧的.aspx视图。
由于我将我的网站转换为MVC3,并且所有视图都转换为Razor,我希望首先搜索.cshtml文件。我认为这对性能会更好。
答案 0 :(得分:5)
是。 Change the order of the existing view engines.
但是在非调试配置中,文件位置会被缓存,因此它只对第一次查找有帮助。我不会出汗。
答案 1 :(得分:4)
感谢the answer of Craig Stuntz我找到了我想要的语法:
我已将其添加到Application_Start
中的Global.asax.cs
:
ViewEngines.Engines.Clear();
ViewEngines.Engines.Add(new RazorViewEngine());
// ViewEngines.Engines.Add(new WebFormViewEngine()); <-- uncomment if needed
这将清除已注册的ViewEngines,并按我想要的顺序添加它们。