【问题标题】:Nested layouts in Orchard pagesOrchard 页面中的嵌套布局
【发布时间】:2012-07-27 20:21:29
【问题描述】:

我正在尝试将现有的 ASP.NET MVC 3 网站迁移到 Orchard,这样我就可以继续构建网站,同时利用 Orchard 提供的扩展功能。我正在尝试将整个现有站点包装到一个 Orchard 模块中,这样我就可以保持所有现有功能完好无损,并继续添加功能,或根据需要将旧功能移植到新范例中。

直接复制到 Orchard 时遇到的主要问题是,我利用 MVC 3 中的布局层次结构为相关页面指定相同的父布局,而这些页面又可能有自己的父布局,等等。

当我在现有视图中复制时,我收到错误,即布局是自定义 Orchard WebPageView 上的只读属性,但是当我将基本视图类型更改回标准 MVC 3 基本类型时,路径不会由于 Module 文件夹结构,与我的观点相匹配。

Orchard 中运行的网站是否完全不支持指定嵌套布局的功能,或者是否有我缺少的内置解决方法?

谢谢! -J

【问题讨论】:

    标签: asp.net-mvc orchardcms


    【解决方案1】:

    Orchard 的布局系统早于 MVC,并且工作方式略有不同。恐怕你将不得不重构一些东西。 Orchard 中的视图依赖于形状的概念,形状是类似于视图模型的动态对象。当需要渲染形状时,系统会寻找最合适的模板将其转换为 html。大多数控制器操作返回一个形状结果,该结果将呈现为必须在布局形状中定义的内容区域的子项。布局形状渲染可以通过指定替代来改变(见http://weblogs.asp.net/bleroy/archive/2010/12/14/switching-the-layout-in-orchard-cms.aspx)。

    所以最终 Orchard 并没有使用 Razor/ASP.NET Web Pages/MVC3 提倡的那种倒置母版页式布局系统。相反,您使用形状及其替代物来获得相似的结果,但观点不同,因为形状被添加到嵌套容器中,而不是包含对象指定它们插入的内容。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 1970-01-01
    相关资源
    最近更新 更多