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

asp.net-mvc - 回发不适用于 ASP.NET 路由(视图状态 MAC 验证失败)

我正在使用带有经典 WebForms 的 ASP.NET 3.5 SP1 System.Web.Routing,如http://chriscavanagh.wordpress.com/2008/04/25/systemwebrouting-with-webforms-sample/中所述

一切正常,我有自定义的 SEO 网址,甚至回发也可以。但是有一种情况,回发总是失败,我得到:

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

这是重现错误的场景:

  1. 使用按钮创建标准 webform mypage.aspx
  2. 创建一个将“a/b/{id}”映射到“~/mypage.aspx”的路由
  3. 当您执行该站点时,您可以浏览http://localhost:XXXX/a/b/页面工作的东西。但是当您按下按钮时,您会收到错误消息。当 Route 只是“a/{id}”时,不会发生错误。

它似乎与url中的子路径数有关。如果至少有 2 个子路径,则视图状态验证失败。

即使 EnableViewStateMac="false" 也会出现错误。

有任何想法吗?它是一个错误吗?

谢谢

0 投票
12 回答
27656 浏览

asp.net - 视图状态是否过期?

假设您有一个不依赖会话的 aspx 页面,但确实依赖于视图状态来实现回发之间的持久性。

如果一个用户正在访问这个页面,并且离开了一个很长的午餐,当他返回时视图状态仍然有效吗?

0 投票
5 回答
762 浏览

asp.net - 在 ASP.Net 中向客户端发送大量复选框的最佳方式是什么?

我有以下情况:

用户将在页面上定义某个过滤器,在回发时,我将使用该过滤器查询数据库并向用户返回一堆匹配的记录,每个记录旁边都有一个复选框,因此他可以选择是否对每个记录进行操作那些记录。

在 Classic ASP / PHP 中,我可以生成许多名为“chk__*”的控件,然后在回发时通过所有 $ POST 条目寻找前缀为“chk ”的条目。

在 ASP.Net 2.0 中执行此操作的最佳方法是什么?

我可以通过使用包含复选框的模板实现中继器,将中继器绑定到数据集,然后在第二个回发时,我只是这样做:

然而,这有一个缺点,就是给我一个巨大的视图状态,这真的很糟糕,因为客户端需要将整个视图状态重新上传到服务器,而这些人可能会通过糟糕的连接使用我的网站。

还有其他想法吗?(我也可以像过去一样动态创建控件并通过 Request.Form 进行迭代,但是,我正在寻找一个更清洁的

0 投票
3 回答
1602 浏览

asp.net - 在没有 ViewState 的情况下提高 OnMenuItemClick?

我有一个(派生的)菜单控件,它显示来自自定义数据源的相当大的项目列表。我需要在菜单上禁用 ViewState 以避免在某些其他控件导致当前选择在回发时更改时非常烦人的“无法选择禁用或不可选择的菜单项”。

不幸的是,当菜单的 ViewState 被禁用时,菜单生成的回不会引发任何事件。如果我启用 ViewState,则会引发 OnMenuItemClick 事件。如果我禁用 ViewState,则不会引发 OnMenuItemClick。我很困惑。

我需要为菜单关闭 ViewState,那么如何处理来自实际菜单的回发?

在这一点上,我倾向于使用菜单的加载事件,解析 __EVENTTARGET 以查看它是否是菜单,然后从那里开始。从技术上讲,这将在正常情况下处理回发事件,但这没关系,我猜。

有更好的想法吗?

0 投票
1 回答
626 浏览

asp.net - MS Reportviewer - 在 ViewState 中保存展开/折叠的节点?

我有一个从ObjectDataSource. 该报告包括每个用户的可展开/可折叠节点。

我允许查看器通过FilterExpression在数据源上设置 来过滤报告,然后调用ReportViewer1.LocalReport.Refresh(). 这是在回发期间完成的。

这会过滤结果,但展开/折叠节点的状态会丢失。有没有办法在 ViewState 中存储展开/折叠的节点?或者有没有更好的方法来完全做到这一点?

0 投票
7 回答
2451 浏览

c# - Viewstate 中的敏感数据?

我需要在每个会话中跨几个页面(通过 https 运行)存储敏感数据。

我不能使用会话对象,主要原因是会话存储被设计为备份存储(主要是进行服务调用并加载会话)。如果会话已重新启动,或者换句话说会话中的密钥不存在,则创建服务并重新填充会话。

因此,在用户键入敏感数据的情况下,我需要跨页面转发这些数据,我们目前没有持久存储,因此左侧选项是将这些敏感数据存储在 Viewstate 中。

1)我应该加密数据然后存储在 Viewstate 中(虽然不推荐 - 秒和性能影响)或 2)我应该将数据存储在可序列化的类中并将其存储在 Viewstate 中吗?(由于性能影响,不再推荐)

请问有什么意见吗?

0 投票
1 回答
5520 浏览

asp.net - 使用 ASP.NET AJAX 和更新面板时如何处理视图状态的想法

这是我写的一个类,用于解决我在视图状态中遇到的一些问题。它将信息存储在用户会话中并增加一个值以跟踪要显示的状态。困难在于不支持返回按钮。我最初有这个的原因是在 AJAX 出现之前,视图状态被发送到客户端而不是存储在服务器上。我认为通过将其存储在服务器上,我可以使客户体验更加丰富。现在,通过诸如速度之类的项目进行分布式缓存,可以将其存储在缓存中。

我很想听听人们可能有的一些评论和任何提示。

以下代码位于您的 asp.net 页面背后的代码中:

0 投票
2 回答
6385 浏览

asp.net - 为什么即使我将 EnableViewState 设置为 false 也会呈现 __VIEWSTATE 隐藏字段

即使我在页面级别设置了 EnableViewState="false",我也看到 __VIEWSTATE 字段被渲染。如果我删除表单元素的 runat="server" 标记,则不会呈现此字段。有人可以解释一下吗?

0 投票
1 回答
455 浏览

asp.net - 负载测试 asp.net 站点(回发/视图状态)

对严重依赖于具有视图状态的帖子的应用程序进行负载测试的最佳方法是什么(相同的帖子不能发送两次,所以简单的记录/重播不会做)?

我可以生成要在帖子中使用的视图状态吗?

0 投票
1 回答
242 浏览

c#-2.0 - 视图状态/功能/服务器与开发服务器不一致

代码是这样的:

由于某种原因,它不能在实时服务器上始终如一地工作。请记住,它总是在我的本地开发机器上工作,有时(大约 3 次尝试中的 1 次)在现场机器上工作。当它在实时服务器上失败时,页面会重新加载并且所有视图状态都会丢失。

我的 webconfig 文件中有一个默认错误捕获,并且该页面永远不会重定向到错误页面。

一致的错误很容易解决,但这样的事情并非如此。

关于什么可以使此页面有时工作有时不工作和/或为什么视图状态在它无法工作时不保留的任何想法?为什么我在本地机器上没有遇到同样的问题?

我尝试合并这两个函数以查看调用外部函数是否导致问题,但不幸的是它没有改变任何东西。此外, IsOK 的值似乎不会影响我是否会得到错误。

我删除了页面加载功能中的所有代码以确保正确排除故障,但我仍然遇到同样的问题。

任何想法将不胜感激。

编辑:我打算按原样发送,但我决定尝试以下方法:

如果我在按钮上单击几次,则在几次尝试后页面确实会丢失视图状态值,但并非总是如此。因此,这里的主要问题似乎是视图状态始终无法正常工作的问题。任何的想法?

谢谢。