首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在果园CMS中转移我的ASP.NET MVC布局(页眉,页脚等)/Theme?

如何在果园CMS中转移我的ASP.NET MVC布局(页眉,页脚等)/Theme?
EN

Stack Overflow用户
提问于 2017-11-19 22:54:55
回答 1查看 214关注 0票数 1

我是新在果园,我想在果园创建一个网站的主题,这已经在ASP.NET MVC5中建立。我是否需要将标记从以前的Layout.cshtml页面复制到orchard themes/MyTheme/Views/Layout.cshtml页面或其他需要的页面?

感谢进阶...!

EN

回答 1

Stack Overflow用户

发布于 2017-11-20 19:39:47

TLDR;

从本质上讲,可以:将MVC5布局内容复制到果园主题的Layout.cshtml文件。

但是还有其他的东西:你的源MVC5 Layout.cshtml文件可能包含像<doctype><head><body>这样的元素。

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

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

果园主题基础

虽然你在开始创建Orchard主题时不一定要理解这一点,但我发现最终它会让你成为一个更有效率的themer。这里有一个关于Orchard模板和形状的简短入门。

Orchard的模板引擎使用形状的层次结构,这些形状是动态对象。每个形状都是使用形状模板(通常以Razor视图的形式)呈现的。

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

形状可以有“包装器”。对于布局形状,定义了一个名为Document的包装器。这实际上意味着在你的主题中,你可以有一个Document.cshtml文件和一个Layout.cshtml文件(如果你的主题中没有Document.cshtml文件,将使用一个默认的)。

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

因此,根据您的MVC5 Layout.cshtml文件中的内容,您可能需要也可能不需要在主题的视图文件夹中创建Document.cshtml文件。就我个人而言,我通常会这样做,以便在需要时很容易进行更改。

页眉和页脚等内容通常会放入主题的Layout.cshtml文件中,因此您可以直接从MVC5 Layout.cshtml文件中复制它们。

最终,您会希望用来自CMS的内容替换“硬编码”的HTML。然后就可以开始向Layout.cshtml文件声明区域了。

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

代码语言:javascript
复制
@Display(Model.MyZoneName)

您可以随心所欲地使用任何专区名称(您不需要在其他任何地方定义它们;除非在主题的清单文件(Theme.txt)中,以防您想要允许CMS用户向这些专区添加小部件)。

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

代码语言:javascript
复制
@Display(Model.Content)

内容区域是插入当前页面内容等内容的位置。而且还有其他视图,例如当您在CMS的登录页面上时的登录表单。

有关形状和区域的内容还有很多,但我希望这至少能帮助您入门。

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47378234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档