Orchard CMS如何在Orchard CMS中传输我的ASP.NET MVC布局(页眉,页脚等)/主题?

时间:2017-11-19 14:54:55

标签: c# asp.net-mvc orchardcms orchardcms-1.9

我是Orchard的新手,我想在orchard中创建一个已经在ASP.NET MVC5中构建的网站主题。我是否需要将以前的Layout.cshtml页面中的标记复制到orchard themes / MyTheme / Views / Layout.cshtml页面或其他任何内容?

先谢谢了!!

1 个答案:

答案 0 :(得分:4)

TLDR;

基本上,是的:将MVC5布局内容复制到Orchard主题的Layout.cshtml文件中。

但还有别的东西:你的源MVC5 Layout.cshtml文件可能包含<doctype><head><body>元素之类的东西。

这些元素需要进入名为 Document.cshtml 的新文件(也在主题的Views文件夹中)。

最终结果是您的Document.cshtml文件包含外部HTML结构,包括<body>元素,但<body>元素的内容位于Layout.cshtml文件中。

Orchard Theming Basics

虽然你不需要理解这一点,以便在开始时创建一个Orchard主题,但我发现,当你这样做时,它最终会让你变得更有效。所以这里是关于Orchard模板和形状的简要入门。

Orchard的模板引擎使用 shapes 层次结构,它们是动态对象。每个形状都使用形状模板(通常以Razor视图的形式)渲染。

每个页面的根是 Layout形状,它由Layout.cshtml形状模板呈现。

形状可以包装&#39;包装。对于Layout形状,有一个名为Document的包装器。这在实践中意味着在您的主题中,您可以拥有Document.cshtml文件和Layout.cshtml文件(如果您在主题中没有Document.cshtml文件,将使用默认文件)

Document.cshtml视图通常定义文档类型,<head>元素和<body>元素。 <Layout>形状的内容将在<body>元素中呈现。

因此,根据您在MVC5 Layout.cshtml文件中的内容,您可能需要也可能不需要在主题的Views文件夹中创建Document.cshtml文件。就个人而言,我通常这样做,以便在需要时轻松做出改变。

诸如页眉和页脚之类的东西通常会进入主题的Layout.cshtml文件中,因此您可以将它们从MVC5 Layout.cshtml文件中复制出来。

最终,您要更换&#34;硬编码&#34;包含来自CMS的内容的HTML。然后是时候开始将区域声明为Layout.cshtml文件了。

要定义区域,您需要做的就是将以下内容添加到Layout.cshtml:

@Display(Model.MyZoneName)

您可以根据需要随意使用任何区域名称(您不需要在其他任何地方定义它们;除非您在主题的清单文件(Theme.txt)中,否则您需要允许CMS用户将小部件添加到这些区域。)

Orchard知道有许多预先定义的区域。在Layout.cshtml文件中,最重要的是Content区域:

@Display(Model.Content)

“内容”区域是插入当前页面内容等内容的地方。还有其他观点,例如您在CMS登录页面上的登录表单。

形状和区域还有很多,但我希望这至少可以让你开始。

有关形状,区域和主题的更多信息,以下是一些有用的资源: