2012-01-26 65 views
2

我给:剃刀发生器生成操作

RazorGenerator

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

谢谢。

回答

2

背后剃刀发生器的目的是,它预先编译你的剃须刀的观点,在翻译的CSHTML文件标记为C#代码视图时呈现的是被执行。

这可以在设计时有发生,当您保存视图,如果设置为以RazorGenerator自定义工具属性。或者,它可以在构建时通过集成Razor Generator MSBuild目标来实现。

正如你所说,没有剃刀发电机你通常设置为你的意见,“内容”的生成操作。标记在运行时被解析,当第一次请求视图时,编译视图在动态生成的程序集中可用。如果您使用Razor Generator,则无需复制标记,因为已编译的视图已经是Web组件的一部分。这就是为什么您可以将视图中的构建操作设置为“无”。

其他信息:

  • 剃刀发生器通过将自己的PrecompiledMvcEngineViewEngines收集扩展ASP.NET MVC。这用于在请求时查找已编译的视图。

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

0

据我了解的RazorGenerator创建可以在视图中使用的HTML帮助。 HtmlHelper被编译为一个具有扩展方法的类。由于您不应该直接在您的项目中使用它,因此不应该发布它基于的视图。因此,该视图应该将构建动作设置为无,正如快速入门中所述。

步骤3在快速启动说明了如何使用创建的HTML帮助:

嵌套的文件将与您的项目被编译并可以 作为一个经常引用的帮手。例如Html.WriteSpan("Hello world")