如何从Orchard备用内部渲染区域或窗口小部件?

Rag*_*esh 2 asp.net-mvc orchardcms razor asp.net-mvc-3

我正试图在Orchard中重现这种布局.到目前为止,我已经通过在我的博客帖子详细信息(Content-BlogPost.Detail.cshtml)中使用替代方案来解决大部分问题.问题是我创建的布局看起来像这样:

在此输入图像描述

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

其次,有没有办法从备用内部渲染区域(或小部件)?我尝试过@Display(Model.Archives),Archives我的区域的名称在哪里,但显然博客详细信息模型没有定义Archives属性.我还考虑过手动调用Blog Archives的形状

@Display(New.Parts_Blogs_BlogArchives(new { Blog: blog, Archives: ???})
Run Code Online (Sandbox Code Playgroud)

但我不知道如何填充第二个论点.

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

Pio*_*myd 7

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

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

我这样做:

  1. 在Theme.txt清单文件(区域部分)中添加一个名为Archives的区域,该区域将成为博客存档窗口小部件的占位符.确保您不会将其呈现在Layout.cshtml文件中.此区域将严格用于博客文章目的(您也可以给它一个不同的名称来注意这一点).
  2. 像你一样为博客文章创建一个替代形状,并Display(Layout.Archives)在适当的地方打电话.这将在博客文章标记呈现整个区域.
  3. 将博客存档窗口小部件放在"存档"区域中.

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

  • 查看做有趣事情的现有模块的代码. (3认同)