Razor的意见可以编译?

我想知道是否可以编译Razor视图,如基于WebForm的视图?

编译Razor视图是否有意义?为什么有人想要这样做?

是的你可以。 看看下面的post: 编译你的asp.net mvc剃刀视图到一个单独的DLL

这是一个关于如何将你的razor视图编译成单独的dll的“循序渐进”指南。 我不知道这是你的目标,但肯定会让你朝正确的方向发展。

编辑:

以下是关于这个主题的博客文章:

如何在编译时检测ASP.NET MVC视图的错误

为了使你的意见被编辑,请执行以下操作;

  1. 通过右键单击VS中解决scheme资源pipe理器上的项目并单击卸载项目来卸载项目
  2. 右键单击已经转换为不可用项目的项目,然后单击“编辑your_project_name.csproj”(如果您的项目是VB项目,则为.vbproj)
  3. 看下面的代码;

    <!--There some lines of code here and I deleted them to get to the point quickly--> <TargetFrameworkVersion>v4.0</TargetFrameworkVersion> <MvcBuildViews>false</MvcBuildViews> 
  4. 将MvcBuildViews标记值从false更改为true

  5. 之后保存并重新加载您的项目。

在你编译你的解决scheme之后,你会看到你的视图也会被编译。

注意:要testing它,打破目标之一的一些代码,并尝试构build。 你会看到你会得到一个错误信息。

MvcBuildViews检查非常好,但是如果它足够复杂的话,它会增加5-10秒的构build你的networking应用程序的惩罚。 它不会caching编译输出,因此每次都会对所有视图进行完整编译。

我发现一个很好的妥协,遵循上面的build议,并添加一个条件属性:

 <MvcBuildViews Condition=" '$(Configuration)' == 'Release' ">true</MvcBuildViews> 

我们希望ReSharper能够在视图中标记任何错误,而且开发人员总是可以在发布configuration中进行testing – 我们有一个开发人员运行的“预检”脚本,以便他们可以轻松确保程序包目标能够正常工作。如果所有这些都失败了,构build服务器将会捕获它。

也许这个诀窍是显而易见的,但是我只是真的开始正确地学习msbuild,而不是为这些任务编写Powershell脚本。 我希望这对某人有帮助。

是的,这是可能的。 事实上,我能想到的最好的例子是电子邮件模板引擎。 如果您编译和caching模板,那么您可以快速撕掉电子邮件,而无需再次进行parsing。

这是在MVC之外使用Razor的一个好例子。