【问题标题】:How do I render a zone or a widget from inside an Orchard alternate?如何从 Orchard 备用中渲染区域或小部件?
【发布时间】:2012-03-16 07:29:51
【问题描述】:

我正在尝试在 Orchard 中重现 this layout。到目前为止,我已经通过使用替代品作为我的博客文章详细信息 (Content-BlogPost.Detail.cshtml) 解决了大部分问题。问题是我创建的布局看起来像这样:

我的第一个问题是,这种布局有意义吗?有没有更好的方法来完成这个结果(即让档案显示与内容一致)?

其次,有没有办法从我的备用区域内渲染一个区域(或一个小部件)?我尝试做@Display(Model.Archives),其中Archives 是我的区域的名称,但显然博客详细信息模型没有定义档案属性。我还考虑过使用类似

的方式手动调出博客档案形状
@Display(New.Parts_Blogs_BlogArchives(new { Blog: blog, Archives: ???})

但我不知道如何填充第二个参数。

在 Orchard 中实现这种布局的正确方法是什么?

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 razor orchardcms


    【解决方案1】:

    这种布局的主要问题是 Archives 区域被放置在博客文章的标记内。这使得渲染变得更加困难,但并非不可能。

    解决方案是在备用区域内渲染整个布局区域,就像你说的那样。您可以显示每个形状的主要顶级布局区域,如下所示:@Display(Layout.Archives)Layout 是一个属性,可让您访问主布局形状。

    我会这样做:

    1. 在 Theme.txt 清单文件中添加一个名为 Archives 的区域(Zones 部分),它将作为博客档案小部件的占位符。确保您Layout.cshtml 文件中呈现它。此区域将严格用于博客发布目的(您也可以给它一个不同的名称来说明这一点)。
    2. 像您一样为博客文章创建一个替代形状,然后在适当的位置致电Display(Layout.Archives)。这将呈现整个区域inside博客文章标记。
    3. 将博客存档小部件放入存档区。

    现在,每次呈现任何博客文章时,它都会呈现档案小部件。

    【讨论】:

    • 太棒了。我在哪里可以了解有关果园的所有这些东西?我走得越深,要学习的东西就越多。 :)
    • 文档和实践经验是最好的选择:)
    • 查看现有模块的代码,做一些有趣的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多