使用N2 CMS时:
如果我想在创建新的 ContentItem 时设置一些默认值(例如,为新页面设置 CreatedByUser 值以便我可以记录最初创建它的人)在哪里放置该代码的最佳位置?
我认为 ContentItem 的构造函数并不理想,因为在加载现有对象时会调用它。
使用N2 CMS时:
如果我想在创建新的 ContentItem 时设置一些默认值(例如,为新页面设置 CreatedByUser 值以便我可以记录最初创建它的人)在哪里放置该代码的最佳位置?
我认为 ContentItem 的构造函数并不理想,因为在加载现有对象时会调用它。
如果您使用的是 Get/SetDetail 语法,那么您可以在属性 getter 中执行以下操作:
public virtual string TopImage
{
get { return (string)(GetDetail("TopImage") ?? string.Empty); }
set { SetDetail("TopImage", value); }
}
这有点难看,所以还有一个 Get/Set detail 的重载,可让您指定默认值:
public virtual string TopImage
{
get { return GetDetail("TopImage", String.Empty /* Default */); }
set { SetDetail("TopImage", value, String.Empty /* Default */); }
}
如果您想在保存某些内容时保存一个值,请尝试覆盖AddTo
ContentItem 上的方法。每次保存对象时都会调用它,因此如果您只想在第一次保存某些内容时调用它(当 Item 为“新”时,ID == 0),请小心