Razor Generator构建动作

时间:2012-01-26 17:15:35

标签: asp.net-mvc

我在给:

RazorGenerator

试一试。快速入门指南提到将构建操作切换为“无”。但是,这意味着视图不会发布。构建操作“内容”是否正确,因为这允许发布?

感谢。

2 个答案:

答案 0 :(得分:4)

Razor Generator背后的目的是预先编译你的剃刀视图,将你的cshtml文件中的标记转换为在呈现视图时执行的C#代码。

如果您将该视图的自定义工具属性设置为RazorGenerator,则在设计时可能会发生这种情况。或者,它可以通过集成Razor Generator MSBuild目标在构建时发生。

正如您所提到的,如果没有Razor Generator,您通常会将视图的构建操作设置为“内容”。在首次请求视图时,在运行时解析标记,并在动态生成的程序集中提供已编译的视图。如果使用Razor Generator,则无需复制标记,因为已编译的视图已经是Web程序集的一部分。这就是您可以在视图中将构建操作设置为“无”的原因。

其他细节:

  • Razor Generator通过将自己的PrecompiledMvcEngine添加到ViewEngines的集合来扩展ASP.NET MVC。这用于在请求时查找已编译的视图。

  • PrecompiledMvcEngine有一些属性,如果设置,将让引擎检查磁盘上是否存在视图,如果它比它在预编译视图中的更新,则使用它。部件。这在设计时非常有用,因此您可以在不重建所有内容的情况下查看对视图所做的更改。

答案 1 :(得分:0)

根据我的理解,RazorGenerator会创建一个可以在视图中使用的Html帮助程序。 HtmlHelper被编译为具有扩展方法的类。不应发布它所基于的视图,因为您不应该直接在项目中使用它。因此,视图应该将构建操作设置为none,完全如快速入门中所述。

快速入门中的第3步说明了如何使用创建的Html帮助程序:

  

嵌套文件将与您的项目一起编译,并且可以   引用为常规助手。例如Html.WriteSpan("Hello world")