无法加载Viewstate - 母版页上的控件

时间:2014-02-08 06:23:55

标签: asp.net webforms viewstate

我在Master Page上有一组控件。我将链接(HyperLink控件)用作所有页面的集合。当我浏览页面时,我正在为当前打开的页面设置hl.Visible = False的特定链接。我注意到这会弄乱ViewState。我讨厌有一个已经存在的页面的链接,有没有办法在不弄乱ViewState的情况下这样做?页面上没有动态控件。

你会用什么技巧?

1 个答案:

答案 0 :(得分:0)

更常见的是,当页面的控件层次结构发生更改时会发生此错误,从而阻止框架加载视图状态。视图状态机制假定控制层次结构在加载时与保存时相同。

可能看起来像一个随机错误,因为有些情况下更改页面中的控件并不会阻止加载视图状态。查看您的页面并查找动态创建/删除的控件。确保在加载视图状态之前将任何控件添加到页面(在页面加载事件之前)。

不幸的是,无法确定哪个控制层次结构中没有正确添加的有罪控件。查看此错误的常见方法是在事件上添加一些动态控件(例如,在下拉列表中选择的索引已更改) - 这样他们的状态将保存到视图状态 - 但不会在回发时再次添加它们 - 这样视图state无效,因为加载视图状态时控件不再存在。

Source