0

N2 CMSを使用する場合:

新しいContentItemが作成されたときにいくつかのデフォルト値を設定したい場合(たとえば、新しいページにCreatedByUser値を設定して、誰が最初に作成したかを記録できるようにする場合)、そのコードを配置するのに最適な場所はどこですか?

ContentItemのコンストラクターは、既存のオブジェクトがロードされるときに呼び出されるため、理想的ではないと思います。

4

1 に答える 1

1

Get/SetDetail 構文を使用している場合は、プロパティ ゲッターで次のようなことができます。

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 */); }
}

何かが保存AddToされたときに値を保存したい場合は、ContentItemのメソッドをオーバーライドしてみてください。これはオブジェクトが保存されるたびに呼び出されるため、最初に何かが保存されたときにのみ呼び出したい場合は注意してください (アイテムが「新規」の場合は ID == 0)。

于 2010-11-03T13:02:51.717 に答える