我的页面面临 Viewstate 加载问题。
页面有一个登录工具来登录管理员和非管理员用户。当非管理员用户登录页面并单击启用了自动回发的复选框时,会发生奇怪的行为。(错误详情如下)
后来我发现,在左侧的导航面板中(其中包含链接)
侧边栏如下图所示
Security
---------
Link1
Link2
Link3
Configuration
---------
Link1
Link2
如果“配置”部分下出现的内容不止于此,则会引发此异常。根据用户对 Page_Load 的权限动态删除链接(从完整列表中)。
我该如何追踪这类问题?我在 Visual Studio 中启用了所有异常,但查看哪个控件导致此问题并没有中断?
无法加载视图状态。正在加载视图状态的控制树必须与在先前请求期间用于保存视图状态的控制树匹配。例如,当动态添加控件时,回发期间添加的控件必须与初始请求期间添加的控件的类型和位置相匹配。
[HttpException (0x80004005): Failed to load viewstate. The control tree into which viewstate is being loaded must match the control tree that was used to save viewstate during the previous request. For example, when adding controls dynamically, the controls added during a post-back must match the type and position of the controls added during the initial request.]
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +380
System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) +144
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +214
System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) +144
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +214
System.Web.UI.Control.LoadChildViewStateByIndex(ArrayList childState) +144
System.Web.UI.Control.LoadViewStateRecursive(Object savedState) +214
System.Web.UI.Page.LoadAllState() +464
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1729