问题标签 [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 回答
2086 浏览

apache-flex - 更改视图状态的最佳做法是什么?

我有一个带有两个饼图的组件,它们显示两个特定日期的百分比(想想开始值和结束值)。但是,我有三个视图:仅开始值、仅结束值或显示两者。我正在使用 ToggleButtonBar 来控制显示。改变这种视图状态的最佳实践是什么?现在(因为此代码被继承),视图状态在 ActionScript 函数中更改,该函数根据 ToggleButtonBar 的 selectedIndex 在每个饼图上设置可见和 includeInLayout 属性,但是,这似乎不是最好的方法要做到这一点 - 不是很动态。我希望能够根据 selectedItem 的名称更改状态,以防 ToggleButtons 的顺序发生变化,并且因为我正在存储 selectedItem 的名称以供将来参考。

使用States会更好吗?如果是这样,实现这一点的最佳方法是什么?

谢谢。

当前逻辑:

0 投票
2 回答
1169 浏览

asp.net - 回发时视图状态失败

我们有一个网络内容管理系统(基于 Sharepoint 2007/MOSS,但对于这个问题,这无关紧要,所以即使您没有在 MOSS 上工作过也请坚持下去!)。在给定页面上,有些条件我们无法更改:

  • 编辑器点击“编辑”,页面发回。
  • 当它在编辑模式下重新加载时,控制树完全不同。
  • ViewState 必须在编辑模式下启用,因为编辑控件经常回发

如果我们在演示模式下禁用 ViewState,一切正常。ViewState 在编辑回发时设置为“启用”,在生成编辑控件时第一次构建 ViewState 树,一切都很好。

如果我们在演示模式下启用 ViewState,当从演示转换到编辑时,我们会收到一个 ViewState 错误,因为控制树发生了变化。

我们需要在演示模式下启用 ViewState,所以我们需要修复这个转换错误。

我们尝试在回发期间禁用 ViewState,然后以编程方式再次回发并重新启用它,但这会导致 MOSS 出现验证问题,因此它似乎不是一个选项。

想法?

0 投票
3 回答
5815 浏览

asp.net - Viewstate 仅在 IE 中失败

我有一个页面,其中包含一些搜索字段来查询数据库并显示结果。视图状态需要保留下拉列表中的项目列表。

在 Firefox (3) 和 Chrome 中一切正常,但在 Internet Explorer 中失败,但只是有时(某些操作,例如重置表单,实际上只是使用一些查询字符串参数执行 response.redirect)...... Viewstate 被转储到 URL 上,并引发错误页面。

有没有人遇到过这个?也许一些关于什么可能导致在 IE 中发生这种情况的指针?

多谢,

格雷格

更新:

在进一步调查中,我确定实际错误是这样的:

“viewstate MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。不能在集群中使用 AutoGenerate。”

一些可能有帮助的更多信息:这是由托管在内容管理系统 (Umbraco) 中的用户控件引起的,这可能与将视图状态传递给页面的原因有关(因为控件包含在CMS 中的更大页面)。我将对此进行进一步调查,但任何其他建议将不胜感激。

欢呼格雷格

更新 2:

任何人都可以建议为什么这只发生在 IE(而不是 FF 或 Chrome)中?如果其他浏览器可以很好地处理它,这似乎不太可能是控件更改或机器键或我在该地方阅读的其他建议的问题。

任何想法 IE 的不同之处可能导致此失败?

解决方案:

原来这是一个非常愚蠢的问题——我在 CMS 中使用了错误的主模板,因此有 2 个表单标签。去掉多余的form标签,问题解决!

非常感谢bendewey 帮助我解决了这个问题(请参阅bendewey 帖子中的评论)。

那是我生命中的 4 个小时,我很想回来……但很高兴我现在可以继续前进。再次感谢 Stack Overflow 社区 :)

0 投票
3 回答
6032 浏览

asp.net-mvc - Html.AntiForgeryToken() 升级到 .NET 3.5 SP1 后导致错误

我刚刚更新到 .NET 3.5 SP1,我曾经工作的 ASP.NET MVC 页面现在已经停止工作。

尝试加载页面时,我得到以下 YSOD

如果我删除线

一切都恢复正常了,有什么想法可能导致这种情况吗?如果这是 MVC 或 .NET 问题,我本来希望找到解决方案的运气更好,所以我猜这与我的配置有关。

我尝试重新安装 MVC 框架,看看是否是因为我在 SP1 之前安装,但我仍然遇到同样的问题。Google 和 SO 搜索尚未得出任何确定的结论。

0 投票
3 回答
16640 浏览

c# - ASP.NET 中 MachineKey 的用途

机器密钥在 asp.net 中有哪些不同的用途?我认为以下是正确的,但认为可能还有更多。

  1. 多个应用程序可以使用同一个 cookie
  2. 多个服务器可以使用相同的视图状态
0 投票
3 回答
403 浏览

asp.net - ASP.NET Additional Partial Classes

I have a huge code behind file for one of my ASP.NET pages. It would be easier to maintain the code if I could break it up into multiple partial classes. However this is not well documented for ASP.NET.

I've learned that the additional partial classes must be moved into the App_Code folder. It seems that I need to use Protected WithEvents declarations to reference my web controls (although I'm not sure that will work yet).

My hang up right now is the ViewState. I cannot reference that in the additional partial class file. I need to get an ID number from the query string in the partial class. If I create a public property in the code behind file for the query string value, it cannot be referenced in the partial class file. It does not show up.

0 投票
8 回答
10482 浏览

asp.net - 为什么你会在 Session 存储对象上使用 asp.net 的 ViewState 存储对象?

除了因为会话存储对于不止一页来说是会话全局的,为什么还要使用视图状态来保存值?

从客户端到服务器来回发送除了一些小的查询字符串(如值)之外的任何类型的信息似乎有点荒谬。我的意思是浪费带宽(!),只是为了存储目的。会话虽然跨多个页面是全局的,但似乎是视图状态的完全优越的替代方案。

特别是对于 asp.net ajax 控件和变体,视图状态可能很快变得臃肿,跟踪所有这些不同控件和 html 元素的各种状态和变量。

但是,为什么还有页面变量和对象的视图状态存储呢?

也许我错过了页面视图状态存储的另一个很好的用途,有人知道吗?

谢谢阅读!

编辑:每个人都有一个很好的答案,对不起,如果我没有选择你的。

0 投票
10 回答
29714 浏览

asp.net - 我应该忽略偶尔的 Invalid viewstate 错误吗?

时不时地(每天一次左右)我们在 ASP.NET 3.5 应用程序的日志中看到以下类型的错误

  • 无效的视图状态
  • 无效的回发或回调参数

这些是 ASP.NET 应用程序不时“发生”的事情吗?有人会建议我们花大量时间尝试诊断导致问题的原因吗?

0 投票
9 回答
36941 浏览

c# - 无法加载视图状态。只是偶尔发生。难以重现

错误的详细信息如下。此错误仅偶尔/很少/有时发生,并且没有任何步骤可以重现它。

我怎么知道哪个控件抛出了这个 Viewstate 错误?

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

时间:很少/偶尔

重建步骤:不能

堆栈跟踪:

0 投票
3 回答
903 浏览

asp.net - ASP.Net:为什么我在控件事件中对 Viewstate 所做的更改不能用于后续回发?

我正在使用 ASP.Net AJAX 在 ASP.Net 3.5 WebForms 中编写自定义控件。我正在为控件构建一个状态切换(展开和折叠模式)。我一直在尝试将控件的当前状态保留在 ViewState 中,并在服务器端事件处理程序中手动更改它:

我认为这无关紧要,但实际渲染发生在更新面板中,并且上面的代码位于异步触发的事件处理程序中。我遇到的问题是,在下一次回发时,ViewState["Expandedness"]返回 null。我尝试使用 Fritz Onion 的 Viewstate Decoder 工具来查看回发之间 viewstate 的实际内容,但它告诉我序列化数据无效。

我在这里采取了错误的方法吗?解决这个问题的正确方法是什么?