在TaxonomyItem Shape中显示分类项中的内容项数

时间:2014-02-19 19:38:40

标签: c# orchardcms shape taxonomy

我正在尝试显示我的分类法列表,其中包含一些内容项。

但我无法知道该怎么做。 我试图修改TaxonomyItem.cshtml

var terms = (IEnumerable<Orchard.Taxonomies.Models.TermPart>)Model.Taxonomy.TaxonomyPart.Terms;

@ terms.Count()

但是这只给出了我的分类项目,而不是每个分类中的内容项目数。

我怎么能显示这个?

2 个答案:

答案 0 :(得分:1)

修改

每个术语都有CountItems,是TermPart.Count的Count值。每次使用术语标记内容项时,TermsPartHandler都会刷新计数。

TaxonomyItem模板使用DisplayChildren,对于每个Term,它将呈现模板TaxonomyItemLink。

@*
   This shape is displayed for a TermPart when in a Taxonomy details page.

   Alternates:
   - TaxonomyItemLink__[HtmlClassifiedTaxonomyName]
   - TaxonomyItemLink__[HtmlClassifiedTaxonomyName]__[HtmlClassifiedTermName]
*@
@using Orchard.Taxonomies.Models
@{
   TermPart part = Model.ContentPart;
}

<span> This is the number of content items with this Term @part.Count </span>   

@Html.ItemDisplayLink(part)

这是该术语的项目数,而不是分类。

答案 1 :(得分:1)

只需从TaxonomyItemLink.cshtml中解析分类法服务

var _taxonomyService = WorkContext.Resolve<Orchard.Taxonomies.Services.ITaxonomyService>();

然后,对于分类中的每个术语,只需计算ContentItems

@{
  var NumberOfContentItems = _taxonomyService.GetContentItems(part).Count(); 

}