【问题标题】:Mixing Orchard CMS content with module将 Orchard CMS 内容与模块混合
【发布时间】:2012-08-05 00:32:05
【问题描述】:

我目前正在开发 Orchard 模块。该模块包含一个包含视图的 MVC 应用程序。我想让模块尽可能可配置。我希望客户配置的项目之一是 MVC 从模块中查看的方式。其中一部分将由主题决定。但不是一切。考虑以下场景:

该模块包含一个用于下订单的视图。视图以“正常视图方式”显示表单。即字段标签和输入标签。但是在表格的开头,每个客户都必须能够定义自己的一组指令来显示。或者,客户可能希望在此处放置一条消息,以将客户指向其他操作。

以最理想的方式,我将有一个内容页面,客户可以在其中放置所有类型的内容和一个特定的块,它是模块视图的结果。有点像 Web 部件。我不知道这是否可能以及如何实现。

编辑澄清 模块创建一个这样的页面:

标题 表格

所以标题和表单都是模块控制器输出的。

我已经设法创建了一个层,条件是 url 与我的表单匹配的页面。

我已在内容区域的该层中添加了一个 HTML 小部件,位置为 1(尝试 0 到)。

但是页面看起来像这样:

  • 标题
  • 表格
  • 小工具

而不是

  • 小工具
  • 标题
  • 表格

【问题讨论】:

    标签: orchardcms


    【解决方案1】:

    从您的控制器操作返回 ShapeResult 将确保您的视图具有主题并受益于小部件,这些小部件是您在 Orchard 中的“类似于 Web 部件”的东西。

    【讨论】:

    • 谢谢伯特兰。但我不确定这是否是我正在寻找的答案。让我试试:我有一个模块,其中一个功能可以创建订单。然后我应该创建一个小部件,其中呈现订单创建操作的 shaperesult。然后我应该定义一个只出现在一个页面上的小部件。订单创建页面。我不知道这是否是我正在寻找的。我将在问题中澄清。如果答案保持不变,那么我将进一步深入研究。
    • 我想我现在明白你的意思了。让我知道我是否理解正确。我会从我的模块中呈现一个视图,其中包含带有基本必需品的表单。例如,我会在 Orchard 本身中创建 HTML 小部件并将它们放在一个新层上(该层仅适用于创建表单的页面)
    • 是的。然而,还有另一种选择。从您的控制器操作中,您可以通过 IWorkContextAccessor 获取 Layout 对象。然后,您可以创建新形状并将其注入顶级区域。有关此技术的更多详细信息,请参阅weblogs.asp.net/bleroy/archive/2011/03/26/…。我认为这更接近您正在寻找的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多