我有一个名为类别的分类法。在这个分类中,我有多个级别的术语。每个术语都是一个 CategoriesTerm 内容类型。
我已经定义了一个自定义剃须刀模板:Content-CategoriesTerm.cshtml
,当我单击前端的 CategoriesTerm 时使用它。
现在我想在该页面上显示所有直接子项(如果有),但没有类似的属性Term.Children
。如何在 Razor 视图中获取术语的子项?
我有一个名为类别的分类法。在这个分类中,我有多个级别的术语。每个术语都是一个 CategoriesTerm 内容类型。
我已经定义了一个自定义剃须刀模板:Content-CategoriesTerm.cshtml
,当我单击前端的 CategoriesTerm 时使用它。
现在我想在该页面上显示所有直接子项(如果有),但没有类似的属性Term.Children
。如何在 Razor 视图中获取术语的子项?
检查Taxonomy.cshtml
和Orchard.Mvc.DisplayChildren
。它是这样的:
var tag = Tag(Model, "ul");
IList<dynamic> items = Model.Items;
if (items.Any()) {
items[0].Classes.Add("first");
items[items.Count - 1].Classes.Add("last");
<div>
@tag.StartElement
@* see MenuItem shape template *@
@DisplayChildren(Model)
@tag.EndElement
</div>
如果您愿意,可以在 Razor 中完成 @DisplayChildren:
public IHtmlString DisplayChildren(dynamic shape) {
var writer = new HtmlStringWriter();
foreach (var item in shape) {
writer.Write(Display(item));
}
return writer;
}