Glass 映射器从 Link 路径填充列表

Glass mapper populate list from Link path

我正在尝试使用不同文件夹中的子项填充当前模型的列表。

在我当前的模型中,我想定义一个类型为 General Link 的字段,我将在其中 select 来自 Sitecore 的具有不同子项的项目。 "public virtual IEnumerable List" 应填充上述子项。

我阅读了与如何进行以下类型的查询相关的不同帖子:

[SitecoreQuery("./*[@@templatename='Testimonial']", IsRelative = true)]
public virtual IEnumerable Children { get;放; }

但这不适用于我的情况,因为我很可能会在不同区域使用此模板,而我不想将其包含在此处。

有谁知道 Glass 是否可以做到这一点,或者我应该只使用自定义查询来用项目子项目填充列表吗?

如果您使用 droplink 或 droptree 字段,而不是常规 Link,您可以通过创建通用文件夹模型来完成您想要的操作。

namespace MySite.Models
{
    [SitecoreType(AutoMap = true)]
    public class Folder<T> : GlassBase
    {
        [SitecoreChildren]
        public virtual IEnumerable<T> Children { get; set; }
    }
}

然后像这样从另一个模型使用它:

[SitecoreField("My Link Field")]
public virtual Folder<ChildModel> MyLinkField { get; set; }