0

ナビゲーション グループを保持するプロパティを持つ Navigation という名前のユーザー コントロールがあります。

protected List<NavigationGroup> NavigationGroups { get; set; }

Page_Load 中にこのプロパティを設定します。

protected void Page_Load(object sender, EventArgs e)
{
    // Get all navigation items.
    NavigationGroups = From.Somewhere.Else.Groups;
}

この値は、コントロール内の他のメソッド呼び出し中にアクセスできます。ただし、実行が Render メソッドに到達するまでに、NavigationGroups プロパティは空になります。値が消える原因は何ですか?どうすれば値を固定できますか?


これはすべて1回のロード中に発生しますが、ポストバック間で保持しようとはしませんでしたが、プロパティを ViewStateに保存しようとしましたが、それも役に立ちませんでした。OnPreRender と Render の間はまだ消えています。


EDIT : コメントから情報を追加します。

他の場所で作成されたリストに設定されているため、値を失っている唯一のフィールドはこのフィールドのようです。ただし、自分のローカル リストに変更を加えても、他のリストには影響しません。ローカル リストが消去されても、他のリストは引き続き評価されます。

4

1 に答える 1

0

List2 つの s は別のものであることが証明されているため、問題が発生する理由を説明できませんが、ディープ コピーを使用すると機能します。

NavigationGroups = GetDeepCopy<List<NavigationGroup>>(From.Somewhere.Else.Groups);
于 2012-08-23T19:32:25.577 に答える