Asp.net MVC 默认提供两个视图引擎,分别为: WebFormViewEngine 和 RazorViewEngine。MVC在查找视图时,会按照指定的顺序进行查找。当我们的MVC程序未找到相应视图时,页面中将出现如下错误信息:
由上图可知,它优先执行的是 webform 视图引擎查找,其次才是 razor 视图引擎。而在我们mvc项目中,通常只用到 razor 或 webform 中的一种(大多数都是用的razor)。假如我们项目中只用到 razor ,那么在这种情况下,去执行 webform 视图引擎查找就显得多余。既然如此,我们就可以通过移除 webform 视图引擎来避免这个多余的动作(多多少少也能起到提升性能的作用)。移除操作还是很简单的,只需在 Global.asax 文件中的 Application_Start() 函数中加入如下代码即可:
protected void Application_Start() { //省略函数中的其它代码 // 清除所有视图引擎 ViewEngines.Engines.Clear(); //添加 Razor ViewEngines.Engines.Add(new RazorViewEngine()); }
现在我们再次运行我们的MVC程序,当未找到相应视图时,页面中的错误信息如下:
由图可见, WebFormViewEngine 已经被成功移除了,这样程序就不用去查找 WebFormViewEngine 相关的视图了。