0

使用N2 CMS时:

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

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

4

1 回答 1

1

如果您使用的是 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 */); }
}

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

于 2010-11-03T13:02:51.717 回答