2015-12-02 17 views
2

我有一个分类术语,用于在我的网站(产品,博客帖子等)中显示多个关联的内容类型。将ContentItems集合呈现到多个区域

我创建了一个替代项来显示术语,但ContentItems集合包含多种内容类型(博客文章,产品等)。

这些表示使用Term_Part形状的所有项目都呈现在同一个区域中。链接的博客文章需要显示在与我的关联产品完全不同的区域中。

目前我在ContentType上迭代ContentItems集合和过滤,但可以使用Placement.info在多个区域中显示零件吗?

或者更好的是,控制ContentItems集合中哪些ContentTypes应显示在哪些区域中?

很抱歉的冗长的问题 - 请询问是否需要进一步的解释

+0

这对分页很困难。我认为预测可能是最安全的选择 – devqon

+0

@devqon是否可以将参数传递给预测?因此,将BlogPosts添加为投影小部件,然后根据分类术语过滤内容? '听起来是一个好主意! :) – ed13

+0

是的,您可以在投影中使用令牌,因此您可以获取“当前的术语Id”令牌,然后过滤特定类型的内容类型和当前术语。然后,您可以将这些不同的小部件放在您想要的位置 – devqon

回答

0

你应该能够使用像这样为每个内容类型的要放置:

<Match ContentType="BlogPost"> 
    <Match Path="/MyTaxonomy/*"> 
    <Match DisplayType="Summary"> 
     <Place Parts_Title_Summary="/RelatedBlogs:1"/> 
    </Match> 
    </Match> 
</Match> 

注意/这意味着它被放置在全局区域(Layout.cshtml)中。在该文件中添加:

@if (Model.RelatedBlogs != null) 
{ 
    @Zone(Model.RelatedBlogs) 
} 

这会在ContentItems集合中留下<li>。我的工作是创建TermPart- [MyTaxonomy] Term.cshtml并将其保留为空,但这只适用于不留下任何内容项目的情况。

作为一个说明,我在匹配路径中添加了,但没有对它进行测试,所以希望它能起作用。在添加匹配路径之前,我遇到了每当显示博客摘要时都会将博客标题分派到该区域的问题。

+0

如果遇到任何问题或有任何改进,我很乐意听到。我在当前的项目中使用这种方法,但尚未完全实施。 – wentz

+0

我忘了补充说,Placement必须在全局区域,所以我编辑了我的答案。 – wentz

+0

谢谢@wentz我会试一试,让你知道。你有它与分页工作? – ed13

相关问题