我尝试使用Placement.info而不是覆盖完整的内容模板,我需要在Content区域和Header区域中显示一个部件(Parts_Title)。我认为在Placement.info文件中有两个位置可以解决这个问题,但似乎最后一个赢了。
有办法吗?我使用的是Orchard 1.9.1.0
按照亚历山大的回答编辑2016-03-16:
我应该做错的事情;我有一个名为OffreEmploi的仪表板(无代码)设计的内容类型。我使用Content-OffreEmploi.cshtml作为替代。这是代码:
@using Orchard.ContentManagement.Utilities;
@Display(Model.Header);
@Display(Model.Content);
@Display(Model.LocalZoneName);
这是我的placement.info
<Match ContentType="OffreEmploi">
<Place Fields_DateTime-DateDebut="Header:2"/>
<Place Fields_Common_Text-Duree="Header:3"/>
<Place Fields_Common_Text-Localisation="Header:4"/>
<Place Fields_Boolean-Temporaire="Header:5"/>
<Place Fields_DateTime-DateExpiration="Header:6"/>
<Place Parts_Common_Metadata="-"/>
<Place Fields_Common_Text-TexteIntroduction="Content:1"/>
<Place Parts_Title="Header:1" />
<Place Parts_Common_Body="Content:3" />
<Place Parts_Title="LocalZoneName:1" />
</Match>
零件Parts_Title仅在末尾(在LocalZoneName中)
呈现答案 0 :(得分:2)
您不能仅使用placement.info来执行此操作。两次显示内容部分的最佳方法是为该内容部分使用特殊的本地区域:
@Display(Model.LocalZoneName)
Parts_Title="LocalZoneName:1"
答案 1 :(得分:1)
Placement.info允许您指定一个单个位置。这就是您看到的行为背后的原因 - 最后一个条目获胜(LocalZoneName:1
)。这就是您的部分内容现在所在的位置 - LocalZoneName
。
亚历山大实际建议的是什么,以及通常的解决方案(通常情况下)是使用一个单独的独特区域来放置你的部分,并多次渲染区域,即:
@using Orchard.ContentManagement.Utilities;
@Display(Model.LocalZoneName);
@Display(Model.Header);
@Display(Model.LocalZoneName);
@Display(Model.Content);
这将使您的LocalZoneName
(现在包含标题部分)在Header
和Content
区域之前呈现两次。