我设置了自定义内容定义,查询和投影以显示这些内容定义,然后设置Content- [ItemType] .Detail.cshtml以完全自定义该项目的外观。我遇到的问题是它在Model.Content
(在Layout.cshtml中)中放置了详细信息视图,但我真的想将此内容类型的详细信息视图放入名为{{1的区域相反。
例如,我在LargeLeft
区域显示时使用了以下内容,其中一个名为LargeLeft
(对于自己的部分非常有效):
SmallRight
由于我的自定义内容类型只是映射到 @* large left bar, small right column *@
@if (Model.LargeLeft != null && Model.SmallRight != null) {
<div class="col_12">
@Zone(Model.LargeLeft)
@if (Model.SocialMedia != null) {
@Zone(Model.SocialMedia)
}
</div>
<div class="col_4">
@Zone(Model.SmallRight)
</div>
}
,因此上面没有看到,而是在此处抛出:
Model.Content
我认为这是与placement.info的关系,但因为我不是要转移单个部分(我的设计师想要完全的HTML控制,因此覆盖模板)并且需要将整个事物放在特定的区域名称中有点失落。
有什么想法吗?
答案 0 :(得分:2)
好吧,我想你可以向你的设计师解释他确实完全控制了HTML ......
您可以使用区域名称前面的斜杠将形状发送到placement.info中的顶级任意区域。
也可以使用Layout.ZoneName.Add(yourShape)
从代码向顶级区域添加形状。
有关在不使用展示位置的情况下为类型构建标记的详情:http://weblogs.asp.net/bleroy/easy-content-templates-for-orchard-take-2