我有一个模块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中插入并正确显示它?
答案 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这个形状应该显示在主布局区域中