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

asp.net - 自定义 ASP.NET 控件如何在不使用 ViewState 的情况下缓存数据?

我不确定这在 ASP.NET 中是否可行,但这是我遇到的问题:我的 Web 应用程序上的一些数据列表是使用GridView显示的;但是,由于其中一些列表可能包含大量数据,因此有时会由于ViewState将页面权重推高到几兆字节的范围内。由于我们不想每次在页面上有回发时都重新查询数据库以获取此信息,所以我想知道是否有一种方法可以缓存提供给服务器上控件的数据,然后下次访问它有回发。

那么这甚至可能吗?如果是这样,有人可以向我指出有关如何执行此操作的更多信息的方向吗?如果不可能,是否有人对我如何解决这个问题有任何建议?

0 投票
9 回答
9815 浏览

viewstate - 无效的视图状态错误

我收到关于 ScriptResource.axd 的无效视图状态错误。只是想知道你们中是否有人可以帮助我。错误是:

这发生在生产环境中。我无法在开发或测试环境中重现这一点。此外,这些页面只能由经过身份验证的用户访问。如果你能对这件事有所了解,那就太好了。

0 投票
4 回答
5344 浏览

c# - ViewState、UserControl 和 IsPostback

基本上,我有一个下拉列表和一个动态添加的用户控件。用户控件根据在下拉列表中所做的选择加载网格视图。下拉列表不是用户控件的一部分。

现在,问题是,每次用户更改下拉列表中的选择时,我如何模拟(isControlPostback = false)?看起来 ViewState 记得该控件。

在我的用户控件中,我有:

当用户更改下拉列表中的选择时,我有一个 javascript 确认框,并且页面回发。所以下拉列表的 OnSelectedIndexChanged 事件不会被触发。每次所选索引更改时,我都想删除以执行此类操作: ViewState.Remove("IsUserControlPostBack");

0 投票
3 回答
2807 浏览

asp.net - 在没有打开视图状态的情况下运行 ASP.NET

我们即将开始重建我们的一个 ASP.NET 项目,我想尝试在不打开 viestate 的情况下开发它(在 web.config 中禁用)。

我知道 viewstate 的优点和缺点,一般来说,它与控制状态相比跟踪了什么,但是我想知道:

  1. 原理开发过程有什么区别?即,您对 Page_Load 等的结构有何不同?

  2. 标准 ASP.NET 控件中是否有任何功能在没有打开视图状态的情况下真的无法工作?

另外,有没有关于使用和不使用 VS 的工作流程差异的详细文章?

0 投票
4 回答
3882 浏览

c# - ViewState 维护了哪些控件?

我试图围绕控制基础结构来了解 ASP.NET 维护哪些视图状态。

有这些常规的 HTML 控件,例如: <input type="radio" checked="checked"/>-> 我知道这些没有视图状态

然后是带有 runat="server" 的 HTML 控件 <input type="radio" checked="checked" runat="server"/>-> 在回发之间是否保持视图状态?

然后是 ASP.NET 控件 <asp:TextBox id="txtMyText" runat="server"/>-> 我知道这些确实有视图状态

我们有几个自定义控件继承了 HtmlTextBox <myPrefix:myTextBox id="txtMyText" runat="server"/>-> 这和上面的类型 2 一样吗?

假设任何带有runat="server"标签的控件都将保持视图状态是否安全?

0 投票
5 回答
18631 浏览

asp.net - 动态创建的 DropDownList 在回发时丢失 ListItems

我有一个页面,其中包含一些动态创建的控件(TextBox 和 DropDownList)。当回发发生时,TextBox 会保留它们的值,但 DropDownList 会丢失它们的 ListItem。这很令人困惑,因为页面级别的 DropDownList 也保留了它的 ListItems。任何人都可以看到下面的代码有什么问题吗?

任何解决此问题的帮助将不胜感激。

0 投票
2 回答
330 浏览

asp.net - 使用 ASP.NET 控件对性能的影响

对于页面上的用户控件,我知道每个控件都会通过将自己的状态存储在 ViewState 中来影响内存使用。我的问题是,多少钱?

例如 - 我有一个反馈表作为我的母版页上的控件。默认设置为 Visible="false"。用户单击反馈按钮,控件在需要时变为可见。

通过控制每个页面(因为它位于母版页中)但不可见,相对性能会产生什么影响?我正在开发的网站可能会有大量流量,我想知道如果事情变得缓慢,我是否会让自己头疼。

谢谢

0 投票
4 回答
3792 浏览

asp.net - 使用 ViewState 的 Asp.net BasePage 属性在回发时被清除

以下是我的设置的基础知识:

我有一个继承自 System.Web.UI.Page 的 BasePage 类。BasePage 实现了两个属性,以便它们的 get/set 从 ViewState 集合中的两个不同项目(例如来自 BasePage 的 this.ViewState["Year"])中执行。

我有另一个类,然后从 BasePage 继承,我们称之为 SpecificBasePage。

最后,我有一个继承SpecificBasePage 的aspx 页面。

我已经添加了断点并在我的代码中做了很多单步调试,发现在初始页面加载时,我的两个视图状态属性都被分配了值,并且这些值在第一个页面加载生命周期中持续存在。

但是,当页面回发时,在 Page_Load 事件和其他事件处理程序期间(应加载 ViewState 时),这两个属性都返回 null。检查 this.ViewState.Count 显示集合中有零个对象。

谁能想到我在某处可能会影响 ViewState 并导致这种行为的事情?

--另外我已经把它隔离到我的一部分代码中。在初始加载时,我在 OnInit 中给出了 viewstate 属性值,我发现当我将其移至 OnLoad 时,这些值在回帖中仍然存在。我猜即使添加的视图状态值在整个初始页面生命周期中都存在,但它们在回发中被放弃了?

0 投票
4 回答
227 浏览

asp.net - 服务器端视图状态能否解决 ASP.NET 的最大问题之一?

我已经阅读了一些关于 ASP.NET MVC 是否值得从“常规”ASP.NET 迁移的 SO 文章。我看到引用的使用 MVC 的最大原因之一是不必使用 Viewstates。

但是,可以通过在服务器上存储视图状态信息来消除视图状态,如本文所示。我已经在一个示例项目中尝试过它,它工作得很好,就我注意到它而言是完全透明的,并且很容易实现。

那么,问题在哪里?我希望它确实会给服务器带来稍高的负载,但它真的会那么糟糕吗?如果没有,为什么没有更多的人使用这种方法而不是抱怨视图状态?

0 投票
1 回答
930 浏览

asp.net - 如何在 ViewState 中存储嵌套的 CompositeControl 属性

我有一个复合控件,它具有大量可用于设置控件样式的属性。我想对这些属性进行分组,但仍保留 ViewState 中的一些属性 控件的标记如下所示:
例如

我的代码看起来像这样


ViewState 无法从 GridStyle 类访问,那么我将如何维护 ViewState 中 AllowFilter 属性的状态?