N2:为ContentItems设置默认值

时间:2010-11-01 10:14:41

标签: asp.net content-management-system default n2

使用N2 CMS时:

如果我想在创建新的ContentItem时设置一些默认值(例如,为新页面设置CreatedByUser值,以便我可以记录最初创建它的人),那么放置该代码的最佳位置在哪里?

我认为ContentItem的构造函数并不理想,因为在加载现有对象时会调用它。

1 个答案:

答案 0 :(得分:1)

如果您正在使用Get / SetDetail语法,那么您可以在属性getter中执行类似的操作:

public virtual string TopImage
{
    get { return (string)(GetDetail("TopImage") ?? string.Empty); }
    set { SetDetail("TopImage", value); }
}

这有点难看,因此Get / Set细节也会出现重载,让您指定默认值:

public virtual string TopImage
{
    get { return GetDetail("TopImage", String.Empty /* Default */); }
    set { SetDetail("TopImage", value, String.Empty /* Default */); }
}

如果要在保存时保存值,请尝试覆盖ContentItem上的AddTo方法。每次保存对象时都会调用此方法,因此如果您只想在第一次保存某些内容时调用它,请小心(当项目为“新”时,ID == 0)