如何使用Babaganoush在Sitefinity中处理分层模块

本文关键字:处理 分层 模块 Sitefinity 何使用 Babaganoush | 更新日期: 2023-09-27 18:13:06

在为项目动态模块创建模型时,如何处理分层模块?

假设我们有一个名为Careers的模块,其父ContentType为"Jobs",子ContentType则为"Applications"。

如何使用Babaganoush在Sitefinity中处理分层模块

要设置模型的层次结构,您需要在创建的动态模型上实现IHierarchy接口。这意味着您将拥有类型为DynamicModelParent属性。

在构造函数中,通过将SystemParentItem传递到您在其他地方创建的父模型的构造函数中,将其分配给父模型(以映射属性值(。

以下是JobModel的外观示例:

public class JobModel : DynamicModel, IHierarchy
{
    public string Description { get; set; }
    public DynamicModel Parent { get; set; }
    public override string MappedType 
    {
        get
        {
            return "Telerik.Sitefinity.DynamicTypes.Model.Applications.Job";
        }
    }
    public JobModel()
        : base()
    {
    }
    public JobModel(DynamicContent sfContent)
        : base(sfContent)
    {
        if (sfContent != null)
        {
            Description = sfContent.GetStringSafe("Description");
            Parent = new CareerModel(sfContent.SystemParentItem);
        }
    }
}