我试图从MSDN和谷歌获得答案,但找不到它。
我正在研究MVC应用程序的性能优化,这需要了解视图编译。
答案 0 :(得分:2)
什么时候编译asp.net mvc视图?
当第一个请求命中并执行返回视图的操作时,将编译视图。
所有视图都会在应用程序启动时或每次请求时编译?
没有。不在应用程序启动。不是每个请求。如果请求A 返回查看V1 。编译V1。然后,如果请求B 到达且需要相同的查看V1 ,则只返回视图而不重新编译它。
我假设在应用程序池重启之前会使用编译视图吗?
不,它们只编译一次,并且在重新启动应用程序池时不会重新编译它们。
为什么不在发布申请之前预先编辑您的观点?
您可以在构建应用程序时预编译MVC视图。因此,您需要卸载MVC项目并修改以下XML元素
<MvcBuildViews>false</MvcBuildViews>
到此:
<MvcBuildViews>true</MvcBuildViews>
<强>更新强>
正如 Nil Pun 在我的回答的评论中发现它,以下link摧毁了关于 csproj 文件中MvcBuildViews
元素的神话。< / p>
那篇文章的作者:
MvcBuildViews用于构建视图,作为Web应用程序构建过程的一部分。它不会生成任何输出到二进制文件夹。在发布过程中预编译视图,并且只有在不希望修改视图时才会进行预编译。可以配置预编译的完成方式。这样就可以将预编译视图的二进制文件合并到一个程序集中。