使用N2 CMS时:
如果我想在创建新的ContentItem时设置一些默认值(例如,为新页面设置CreatedByUser值,以便我可以记录最初创建它的人),那么放置该代码的最佳位置在哪里?
我认为ContentItem的构造函数并不理想,因为在加载现有对象时会调用它。
答案 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)