问题标签 [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 投票
3 回答
2486 浏览

c# - 如何获取已构建、编码的 ViewState 的值?

我需要获取base64-encoded. ViewState显然,这在请求生命周期的相当晚的时候才可用,这没关系。

例如,如果页面的输出包括:

我需要一种在服务器端获取价值的方法"/wEPDwUJODU0Njc5MD...=="

澄清一下,我在呈现页面时需要这个值,而不是在 PostBack 上。例如,我需要知道发送给客户端的 ViewState 值,而不是我从他们那里得到的 ViewState。

0 投票
3 回答
3309 浏览

c# - ViewState 仅在 Safari 中无效

我维护的网站之一在很大程度上依赖于使用ViewState(这不是我的代码)。但是,在某些ViewState过度膨胀的页面上,Safari 会引发"Validation of viewstate MAC failed"错误。

这似乎只发生在 Safari 中。Firefox、IE 和 Opera 都在相同的场景下成功加载。

0 投票
5 回答
3162 浏览

asp.net - 使用 ASP.NET AJAX / ICallbackEventHandler 跟踪状态

我在维护 ASP.NET AJAX 页面中的状态时遇到问题。简短版本:在进行异步回调后,我需要一些方法来更新页面 ViewState,以反映服务器在异步调用期间所做的任何状态更改。

这似乎是一个常见问题,但我将描述我的场景以帮助解释:

我有一个类似网格的控件,它具有一些 JavaScript 增强功能——即拖放列和行的能力。当一列或一行被放到一个新位置时,调用一个 AJAX 方法来通知控制服务器端并触发相应的服务器端事件(“OnColumnMoved”或“OnRowMoved”)。

默认情况下,ASP.NET AJAX 调用将整个页面作为请求发送。这样页面会经历一个完整的生命周期,视图状态会被持久化,并且控件的状态会在调用 RaiseCallbackEvent 方法之前恢复。

但是,由于 AJAX 调用不会更新页面,因此 ViewState 会反映控件的原始状态,即使在移动列或行之后也是如此。因此,第二次发生客户端操作时,AJAX 请求会发送到服务器,并且页面和控件会重新构建以反映控件的第一个状态,而不是移动第一列或第一行之后的状态。

这个问题延伸到许多方面。例如,如果我们有一个客户端/AJAX 操作来向网格添加一个新项目,然后拖动一行,则网格是在服务器端构建的,比客户端少一个项目。

最后,对于我的具体示例,最重要的是,我们正在操作的实际数据源对象存储在页面 ViewState 中。这是一个设计决定,允许保留被操纵数据的有状态副本,这些副本可以在多次操作后提交给 DB,或者在用户退出时丢弃。这是很难改变的。

因此,再次,我需要一种方法来在触发 AJAX 方法后在回调时更新页面 ViewState。

0 投票
11 回答
111130 浏览

asp.net - 如何解码视图状态

我需要查看 asp.net 页面的视图状态的内容。我寻找了一个视图状态解码器,找到了 Fridz Onion 的视图状态解码器,但它要求页面的 url 来获取它的视图状态。由于我的视图状态是在回发后形成的,并且是由于更新面板中的操作而产生的,因此我无法提供 url。我需要复制并粘贴视图状态字符串并查看里面的内容。是否存在可以帮助查看 viewstate 内容的工具或网站?

0 投票
1 回答
4398 浏览

asp.net - 在回发时设置视图状态

我试图在按下按钮时设置 ViewState 变量,但它仅在我第二次单击按钮时才起作用。下面是代码隐藏:

有什么我想念的吗?这是设计文件的表单部分,非常基本,就像POC一样:

PS:示例非常简化,“使用txtName.Text代替 ViewState”不是正确答案,我需要将信息放在 ViewState 中。

0 投票
7 回答
2468 浏览

asp.net - 不能使用 ViewState 时怎么办?

我有一个相当复杂的页面,它在转发器内动态构建用户控件。在初始化之前,必须在 Init 页面事件期间绑定此转发器,ViewState否则动态创建的用户控件将不会保留其状态。

这会创建一个有趣的 Catch-22,因为我将转发器绑定到的对象需要在初始页面加载时创建,然后保留在内存中,直到用户选择离开或保存。

因为我不能ViewState用来存储这个对象,但在初始化期间它仍然可用,我不得不将它存储在 Session 中。

这也有问题,因为我必须在非回发期间显式地清空会话值以模拟其ViewState工作方式。

在这种情况下,必须有更好的状态管理方法。有任何想法吗?

编辑:一些关于使用的好建议LoadViewState,但是当我这样做时我仍然遇到状态未恢复的问题。

这里有点如果页面结构

页面 --> 用户控件 --> 中继器 --> 动态创建的 N 个用户控件。

我将覆盖的内容LoadViewState放在 parentUserControl中,因为它被设计为完全封装并且独立于它所在的页面。我想知道这是否是问题所在。

0 投票
1 回答
421 浏览

asp.net - ViewState 和更改控制顺序

这是一个有趣的一周(如果你回顾我的问题,你会发现一个共同的主题)。

我有一个绑定到集合的转发器。每个与集合项对应的转发器项动态控件,它还在每个包含删除链接的控件上呈现一个标题。

单击删除链接时,会从集合中删除相应的项目,并重新绑定转发器。

我遇到的问题是,一旦我改变了中继器项目,一些用户控件的状态就会丢失。无论它们在集合中的哪个位置,它总是相同的控件。

我想知道更改绑定集合是否是禁忌,它可能会使视图状态无法正确恢复值。

谁能澄清一下?我还能怎么做?

0 投票
15 回答
3583 浏览

asp.net - 将 ViewState 移出页面?

我们正试图尽可能减轻我们的页面负载。由于 ViewState 有时会膨胀到 100k 的页面,我很想完全消除它。

我很想听听其他人用来将 ViewState 移动到自定义提供程序的一些技术。

也就是说,有几点需要注意:

  • 我们平均每小时为 200 万独立访客提供服务。
  • 正因为如此,数据库读取一直是一个严重的性能问题,所以我不想将 ViewState 存储在数据库中。
  • 我们还支持负载平衡器,因此任何解决方案都必须与用户在每次回发时从机器跳到机器一起工作。

想法?

0 投票
3 回答
2787 浏览

asp.net - 如何判断 ASP.Net 应用程序中的视图状态是否已被篡改?

在一次关于安全性的讨论中,我团队的一位开发人员询问是否有办法判断视图状态是否被篡改。我很尴尬地说我不知道​​答案。我告诉他我会知道的,但我想我会给这里的人一个机会先回答。我知道有一些自动验证,但是如果未启用事件验证,有没有办法手动进行?

0 投票
5 回答
4083 浏览

c# - 如何优雅地处理 ViewState 错误?

我正在运行一些带有各种网格视图的 c# .net 页面。如果我将它们中的任何一个单独留在网络浏览器中很长一段时间(通常是一夜之间),当我单击页面上的任何元素时,我会收到以下错误。

我不确定从哪里开始处理这个问题。如果它的视图状态已过期,我不介意重置页面,但抛出错误是不可接受的!