果园CMS。区域中的显示形状如何正确?

时间:2018-03-22 12:22:39

标签: orchardcms orchard-modules

我有一个模块Orchard.MyModule。在模块中是形状Orchard.Web \ Modules \ Orchard.MyModule \ Views \ Parts \ Header.cshtml

Header.cshtml中的

是代码

...
Model.ContentItem.Id
...

如果在layout.cshtml中

Func<dynamic, dynamic> Zone = x => Display(x);
@if(Model.Header != null)
{
  @Zone(Model.Header)
}

始终是黄色的死亡页面,而Model.ContentItem = null。

如果在layout.cshtml中删除它代码,那么情况将是: 1)在“标题区域”窗口小部件Header.cshtml中设置的管理面板中。 ---不显示 2)在Header区域的管理面板中为空,在BeforeContent区域中为Header.cshtml。 ---将显示标题形状(Header.cshtml) 3)所有区域都是空的。 ---不显示

Shape Header.cshtml重新定义了标题区域?如何在Header区域Header.cshtml中插入并正确显示它?

1 个答案:

答案 0 :(得分:0)

我认为驾驶员正在显示Parts/Header.cshtml

protected override DriverResult Display(MyPart part, string displayType, dynamic shapeHelper) {
    return ContentShape("Parts_Header", () => shapeHelper.Parts_Header();
}

这样的东西?

然后你可以获取形状类型(即ContentShape中的第一个参数:&#34; Parts_Header&#34;)并将此部分发送到模块Placement.info中的主布局区域,如下所示:

<Place Parts_Header="/Header:1" />

导入部分是Header之前的 / ,它告诉Orchard这个形状应该显示在主布局区域中