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 属性为空。是什么导致价值消失,我该如何让它坚持下去?


即使这一切都发生在一次加载期间 - 不是试图在回发之间保持它 - 我尝试将属性存储在 ViewState 中,但这也无济于事。仍然在 OnPreRender 和 Render 之间消失。


编辑:从评论中添加信息。

看起来唯一失去价值的字段就是这个字段,因为它被设置为在其他地方创建的列表。但是,对我的本地列表进行更改不会影响另一个列表,并且当我的本地列表被擦除时,另一个列表仍然受到重视。

4

1 回答 1

0

无法解释为什么会出现这个问题,因为这两个Lists 可以证明是分开的,但是使用深拷贝可以:

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