问题标签 [failed-to-load-viewstate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
725 浏览

c# - 向转发器添加标记时如何避免“加载视图状态失败”异常?

我有一个继承自 Repeater 的自定义控件。我需要在转发器中的项目周围注入一些标记。目前我正在循环Repeater.Items(OnPreRender)并添加包含标记的LiteralControls。这很好用,除了在执行回发时,因为它会抛出“加载视图状态失败”异常。

1)有人有更好的方法吗?
2)或者解决异常的方法?也许我以一种导致这种情况的方式添加标记?

0 投票
5 回答
33817 浏览

c# - 设置 ViewStateUserKey 给我一个“视图状态 MAC 验证失败”错误

我的BasePage班级中有以下内容,我的所有 ASPX 页面都来自:

我也machineKey有一套Web.config。我不认为这个错误是因为网络农场,因为这也发生在我的开发机器上。

我的主机现在已升级到 .NET 3.5 SP1。在此更新之后,每次我使用上述ViewStateUserKey设置进行编译时,每次回发时都会不断收到“视图状态 MAC 验证失败”错误。

我在这里做错了什么?最新的框架更新是否还需要此设置?

0 投票
1 回答
2479 浏览

asp.net - F5 页面刷新后 LoadViewState 出现问题 - 无法加载视图状态

我的 ASP.NET 应用程序中出现 Viewstate 和 F5 页面刷新问题。

如果从一个页面导航到另一个页面后我立即按 F5,我会收到以下错误:

这导致页面上显示以下异常:

它失败的点是在自定义标签控件的重写 LoadViewState 方法中,当它调用父 LoadViewState

savedState 对象似乎是一个完全不同的控件(下拉列表),它是一个 System.Web.UI.Triplet,而不是 Label 控件所期望的 System.UI.Pair 对象。

如果我在同一应用程序中使用不同页面执行完全相同的操作,则该页面在 F5 回发后加载正常。这两个网页继承自同一个基类并使用相同的自定义控件。导致问题的页面没有任何动态添加的控件。

调试过程后,看起来 LoadViewState 事件在成功加载页面上的控件的 F5 回发后没有被触发。在这两种情况下都会触发 SaveViewState。

有什么想法为什么会为一个页面触发 LoadViewState 事件而不是另一个页面?我对 ASP.NET 还很陌生,但我仍然对 ViewState 的工作原理有所了解。

0 投票
4 回答
1224 浏览

c# - 动态控件更改后“无法加载 ViewState”

在我的 ASP.NET 页面中,我必须根据下拉列表中的选定值动态选择和加载自定义控件。但是我遇到了以下问题:当动态加载控件的参数发生更改时,然后在下拉列表已更改(因此迫使我在下次重新加载页面时加载不同的动态控件),我最终出现“无法加载 ViewState”异常。我认为发生这种情况是因为 ViewState 正在尝试恢复旧的参数控制,它没有找到它。那么,有什么方法可以阻止视图状态尝试恢复不存在控件的状态?

0 投票
1 回答
933 浏览

c# - 无法使用复合控件加载视图状态

我创建了一个复合控件,它根据其中一个名为“Type”的属性的值更改其中的控件。目的是一旦设置了这个“Type”属性,它就不会在控件的生命周期内再次更改,因此作为“Type”属性值的结果呈现的控件不应更改。

我已经按照许多互联网帖子的建议覆盖了 LoadViewState 和 SaveViewState 方法,但我仍然收到有关“无法加载 ViewState”的错误消息。该控件将在第一次加载时正确呈现,但一旦进行任何回发,它就会生成“加载 ViewState 失败”错误。

以下是复合控件的部分代码:

这是创建自定义控件的“解析器”文件的代码:

这是我用来测试控件的 aspx 页面上的代码:

和代码隐藏:

我也尝试过只将控件放入 if (!Page.IsPostBack) 中,但是它甚至根本不显示控件在回发中。我究竟做错了什么?

更新:所以我将它添加到复合控件中:

现在我不再收到“无法加载视图状态”错误,但似乎子控件的视图状态没有跨回发保存。我的复合控件中的一个控件是启用了分页的gridview,当单击下一页时,它将转到第二页,但永远不会转到第3页或第4页等等。但它会毫无问题地转到“最后一页”,“第一页”。但是下一页和上一页无法正常工作,但也不会引发错误。想法?

0 投票
2 回答
2576 浏览

asp.net - 如何在不导致视图状态错误的情况下向数据绑定的网格视图添加一行?

我正在尝试将行分组行添加到我的数据绑定网格视图中。它在第一次响应时工作正常,但在回发时我收到“无法加载视图状态”错误。

GridView 的 RowDataBound 事件的代码如下:

我知道在数据源上创建分组行更容易,但是从这段代码中,我想为站点上的其他网格创建一些基础。

0 投票
1 回答
376 浏览

asp.net - ViewStateUserKey 有时无法验证

我在 ASP.NET 中有一个使用表单身份验证的应用程序。它有以下代码。

单步执行我看到此代码在每个页面加载时执行。当登录用户请求该页面时,ViewStateUserKey 将填写他们的用户名。如果您让页面等待表单身份验证超时,则用户不再登录,并且由于名称现在为空,因此在验证视图状态时回发失败。但是我注意到,如果我在屏幕上放置其他按钮,然后发回,它不会失败,即使在身份验证超时后也是如此。每次超时都应该出现这个错误吗?

0 投票
1 回答
443 浏览

.net - 无法加载视图状态 - 没有动态加载的控件

我们收到关于著名的“无法加载视图状态”的零星报告。很难追踪,因为我们没有使用任何动态加载的控件。而且是零星的。

“加载视图状态失败。正在加载视图状态的控件树必须与先前请求期间用于保存视图状态的控件树匹配。例如,动态添加控件时,回发期间添加的控件”

这还有什么其他原因?我们没有记录任何应用程序池回收。

0 投票
4 回答
1064 浏览

c# - 无法在 NLB 上加载视图状态

我们有一个系统,可以在每次回发时动态创建页面控件,并使用浏览器历史记录等进行处理。

问题是在生产服务器(NLB 上的 2 个节点)上,我们随机出现在不同的位置,没有发现相关性,加载视图状态失败,控制树可能是不同的错误。但是,在我们的登台服务器上完全相同的代码(与生产相同的 NLB 设置)从未发生过。

我现在基本上排除了它的代码,因为它根本不会发生在开发/登台或本地环境中,在生产环境中它相当频繁。这让我相信我们在某个地方存在配置错误。

我在用于登台和生产的 web.config 中设置了硬编码的机器密钥,并且会话支持 MSSQL。

如果有人有建议让我朝着正确的方向前进,那就太好了,我们整个开发团队都会为此感到难过。

我们的 webconfig 位于 pastbin:http ://pastebin.com/m2kRTd0k

0 投票
1 回答
593 浏览

jquery - 操作 DOM 时的 ASP.NET ViewState 验证

我正在使用 jQuery 和 ASP.NET 来显示一个包含按钮的对话框。经过一番搜索,我通过添加更多 JavaScript 将对话框附加到表单中,使对话框中的按钮工作。

这工作正常,直到我打开对话框,关闭它,然后尝试在父页面上使用 ComboBox 或 LinkBut​​ton 之类的控件。此时我收到 ViewState 验证错误:

无法加载视图状态。正在加载视图状态的控制树必须与在先前请求期间用于保存视图状态的控制树匹配。例如,当动态添加控件时,回发期间添加的控件必须与初始请求期间添加的控件的类型和位置相匹配。

有没有办法解决?我一半明白它为什么会发生 - jQuery 正在改变文档的结构,但我不完全确定这如何/为什么会影响 ViewState。