我有一个名为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属性为空。导致价值消失的原因是什么?如何让它消失?
尽管这一切都是在一次加载期间发生的 - 而不是试图在回发之间保持它 - 我尝试storing the property in ViewState,但这也没有帮助。在OnPreRender和Render之间仍然消失。
编辑:从评论中添加信息。
看起来唯一失去价值的领域是这一领域,因为它被设置为在其他地方创建的列表。但是,对我的本地列表进行更改不会影响其他列表,并且在擦除本地列表时仍会对其他列表进行评估。
答案 0 :(得分:0)
无法解释问题发生的原因,因为两个List
可证明是分开的,但使用deep copy可以解决问题:
NavigationGroups = GetDeepCopy<List<NavigationGroup>>(From.Somewhere.Else.Groups);