在OrchardCore.Themes的TheAdmin主题中,我在Views文件夹中看到Layout.cshtml和Layout-Login.cshtml。
在TheAgency主题中,我在views文件夹中看到Layout.liquid。
我尝试将新创建的主题的views文件夹中的Layout.liquid更改为Layout.cshtml,当我运行它时,它仍然可以工作。
那么,Orchard Core中主题中的Liquid和cshtml文件之间有什么区别,我什么时候应该在另一个上使用?
答案 0 :(得分:1)
它们是您可以使用的两个不同的视图引擎。 Razor / cshtml对ASP.NET开发人员更为熟悉,但其视图已编译。 Liquid是JavaScript领域中非常著名的模板语言,它对Orchard具有巨大优势,因为它的视图没有被编译。这样就可以将它们存储在数据库中,无需重新启动或触发编译就可以更改它们,等等。
作为模块作者,您可以选择,并且应该使用最熟悉的一种。但是有时,例如,无论出于何种原因必须动态创建视图,Liquid都是唯一的选择。
答案 1 :(得分:0)
液体是内容可编辑模板的唯一选择的原因是,剃刀模板完全可以访问@{ }
块中可以用C#代码编写的任何内容。然后,这仅受授予Web应用程序的执行权限的限制。因此,因此,剃刀模板可能会带来安全风险,以允许最终用户在剃刀中编写模板。
使用液体模板,您只能调用呈现模板的主机提供的液体过滤器。