ViewState探讨

asp.net viewState 那么,有了这个隐藏域,页面里其他所有的控件的状态,包括页面本身的一些状态都会保存到这个控件值里面. 每次页面提交时一起提交到后台,asp.net对其中的值进行解码,然后输出时再根据这个值来恢复各个控件的状态. 我们再看这个控件的value值,它可能类似如下的形式:Oz4+O2w8aTwxPjs+O2w8…当请求某个页面时,ASP.NET会把所有控件的状态序列化成一个字符串,然后作为窗体的隐藏属性送到客户端,当客户端吧页面回传时,ASP.NET分析回传的窗体属性,并赋给控件对应的值。......... 阅读详情

ViewState包含的状态与控件发送客户端时包含的状态相同。当浏览器把窗体发送回服务器,ViewStae包含了初始值,但所发送的控件包含了新值。如果初始值和新值有区别,就调用相应的事件处理程序。

下面来看个例子:

aspx文件关键代码为

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="lbl1" runat="server" EnableViewState="false" Text="1"></asp:Label>
        <asp:Label ID="lbl2" runat="server" Text="2"></asp:Label>
        <asp:Button ID="btn" runat="server" Text="点击" onclick="btn_Click" />
    </div>
    </form>
</body>
</html>


aspx.cs文件关键代码为

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ViewState["mydata"]="123";
    }
    protected void btn_Click(object sender, EventArgs e)
    {
        Response.Write((string)ViewState["mydata"]+"<br/>");
        int i1 = int.Parse(lbl1.Text);
        int i2 = int.Parse(lbl2.Text);
        int i3 = i1 + i2;
        lbl1.Text = i3.ToString();
        lbl2.Text = i3.ToString();
        Response.Write(i3);
    }
}


以上的代码运行的结果是两个label运行第二次之后就只是加1 了,原因是lbl1使用了不维护控件视图状态——也就是说它发送回服务器的数据始终没有变化,这使得Web服务器控件不会自动使用ViewState来使事件工作。而lbl2数据是变化是,会使其调用相应的事件处理程序。

ViewState["mydata"]="123";Response.Write((string)ViewState["mydata"]+"<br/>");

此处是定制的数据存储在ViewState中,为此可以使用索引符和Page类的ViewState属性。

ASP.NET ViewState解析与优化工具 字段是ASP.NET框架中用于维护Web页面状态的一种机制。它在客户端和服务器之间传递,确保在往返过程中页面元素的状态不丢失,从而为用户提供类似桌面应用的交互体验。存储在HTML表单中,并在页面回传时由客户端发送至服务器。它以Base64编码的序列化字符串形式存在,包含了页面上所有控件的状态信息。ViewState查看工具的主要功能包括查看当前页面的ViewState数据、分析ViewState的结构和内容、监控ViewState大小的变化以及提出优化建议。 阅读详情

相关推荐

asp.net中ViewState的用法详解

本文给大家介绍asp.net中viewstate的用法,涉及到viewstate的原理、用法、与session的对比等方面的知识,对viewstate用法感兴趣的朋友一起看看吧

浅谈ViewState

一、什么是ViewState 二、使用

我在等那么一天的博客 1万+

AB相增量式编码器以及STM32定时器编码器模式测速/测距离(HAL库)

编码器(Encoder)是一种用于测量旋转运动或位置的设备。编码器通常与定时器模块一起使用,以便在微控制器中获取和计算旋转的脉冲数量,从而确定物体的运动方向和距离。编码器在许多应用中都很有用,例如机器人运动控制、电机位置反馈和位置传感。STM32微控制器提供了多种类型的编码器支持,其中一种常见的编码器类型是增量编码器。增量编码器基于两个脉冲信号通道,通常称为A相和B相。当旋转发生时,这两个信号通道的相位关系会发生变化,从而可以计算出旋转方向和旋转的步数。

嵌入式软件工程师的博客 1万+

.net 中viewstate的原理和使用

ASP.NET中的ViewState ViewState是ASP.NET中用来保存WEB控件回传时状态值一种机制。在WEB窗体(FORM)的设置为runat="server",这个窗体(FORM)会被附加一个隐藏的属性_VIEWSTATE。_VIEWSTATE中存放了所有控件在ViewState中的状态值。 ViewState是类Control中的一个域,其他所有控...

Curtain的博客 4047

DolphinScheduler工作流中ChunJun任务保存失败的深度解析与实战修复

本文深度解析了在DolphinScheduler工作流中创建ChunJun任务时遭遇“parameter invalid”保存失败的普遍问题。其根源在于前端表单的`customConfig`参数默认值与后端校验逻辑不匹配。文章提供了两种实战修复方案:一是修改前端源码并重新编译,二是热更新已部署的JS文件,并对比了其适用场景与风险,帮助用户彻底解决此集成障碍。

weixin_29010003的博客 395

DM9000有线网卡驱动编写

DM9000有线网卡驱动编写 1.DM9000简介   DM9000 是一款完全集成的、性价比高、引脚数少、带有通用处理器接口的单芯片快速以太网控制器。 自 带一个 10/100M PHY 和 4K 双字的 SRAM ,DM9000A 为适应各种处理器提供了 8 位、16 位数据接口访问 内部存储器,DM9000 拥有自动协商功能,DM9000 特性如下:   1.集成自适应 10/100M 收发器。   2.内置 16k 字节的 SRAM。   3.支持硬件帧校验。   4.兼容 3.3V 和 5.0V

weixin_44453694的博客 4672

C#面:解释什么是viewstate,能否禁用?是否所用控件都可以禁用

ViewState是用于在Web应用程序中跨页面请求之间保存和恢复页面的状态数据的机制。可以通过设置EnableViewState属性为false来禁用ViewState。并非所有的控件都可以禁用ViewState,一些控件可能会依赖ViewState来维护其状态。

那个那个鱼的博客 981

A133在Android13上适配百兆以太网

NOTE] 【技术支持问题】问题背景/平台。

mangofu的博客 412

深入解析 ASP.NET 的 ViewState 反序列化漏洞

在本文中,我们深入探讨了 ASP.NET 中的 ViewState 反序列化漏洞,包括其原理、如何验证漏洞的存在、以及如何修复漏洞。通过全面理解该漏洞的工作机制,我们可以更加有效地保护应用程序免受攻击。ViewState 反序列化漏洞原理ViewState 通过 Base64 编码,将页面和控件的状态信息传递给客户端和服务器。如果 ViewState 未加密或未正确签名,攻击者可以篡改 ViewState 数据并执行恶意代码。验证漏洞存在。

qq_33163046的博客 1万+

Ubuntu零基础教学-史上最详Ubuntu20.04安装教程,超级详细,强烈建议收藏!

官网地址:https://www.vmware.com/ 1、VMware Workstation Pro 15.5.1在Windows 10的安装不再介绍了,一路下一步即可。 2、下面详细介绍在VMware 虚拟机里安装Ubuntu 20.04 LTS的步骤

**My Coding Family** 2万+

UNet 改进(19):与ASPP结合的图像分割模型

这个代码实现了一个改进版的UNet模型,在传统的UNet架构基础上,引入了ASPP模块来增强模型捕获多尺度上下文信息的能力。​​UNet主干网络​​:经典的编码器-解码器结构,带有跳跃连接​​ASPP模块​​:位于瓶颈层,用于提取多尺度特征。

2401_82355416的博客 878

关于Asp.net中static与ViewState使用的探讨

关于Asp.net中static与ViewState使用的探讨     摘 要: 利用asp.net 开发基于B/S模式的应用系统,经常会遇到同一页面类的各函数 成员之间、同一会话各页面之间、不同机器各用户页面之间的传值问题,即要解决数据共享 的问题。这可以选择使用Application、Session、cookie、Static、ViewState等方法实现 。其中Stati

万事俱备,就差一个程序员了 355

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测 目录时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测基本介绍ARIMAXVARVARMAVARMAXSESHWES参考资料 基本介绍 本文介绍ARIMAX、VAR、VARMA和VARMAX基本概念及其Python程序设计。 ARIMAX 具有外源回归量的自回归整合移动平均值(ARIMAX)是 ARIMA 模型的扩展,其还包括外生变量的建模。 外生变量也称为协变量,可以被认为是并行输入序列,其在与

前程算法屋的博客 6688

.NET中维持ViewState的探讨

在ASP .NET中提交一个表单的时候,表单与所有的表单值一起再现于浏览器窗口。怎么会这样?这是因为ASP .NET维持你的ViewState。ViewState指明页面被提交到服务器时的状态。该状态是通过在每个带有<form runat="server">控件的页面中安置一个隐含域来定义的  在传统ASP中,当一个表单被提交的时候所有表单值都被清除。假设你提交了一个有很多信息的表单

歡迎來到 proMakccの窝.. 650

CPU 访问外设的两种核心机制:MMIO(Memory-Mapped I/O) 和 DMA(Direct Memory Access)

BAR和DMA是计算机系统中两种关键的数据传输机制:BAR(基址寄存器)用于CPU与设备间的控制通信,映射设备寄存器便于配置操作;而DMA(直接内存访问)允许设备直接读写系统内存,无需CPU参与大量数据传输。典型场景如NVMe SSD读取数据时,CPU通过BAR下发指令,设备通过DMA高效传输数据到主机内存,最后中断通知CPU。虽然BAR能映射大内存空间,但仍无法替代DMA的高效数据传输功能,两者各司其职——BAR负责控制,DMA专注数据传输,共同实现高性能的硬件交互。

MHD0815的博客 237

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ASP.Net ViewState的实现

  ViewState是.Net中提出的状态保存的一种新途径(实际上也是老瓶装新酒);我们知道,传统的Web程序保存状态的方式有这样几种:  1、Application 这是Web应用程序生命期中的全局保存区,保存在Application中的数据是全局有效的;在Asp.Net中,有一个应用程序池,其中保存了数个(或数十个)应用程序实例,每一次请求都会从池中取一个实例来处理请求,在请求完毕之前,这个

timmy3310的专栏 2692

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

ViewState的用法

 ViewState是ASP.NET的一个独创设计。它为用户在进行Web开发时带来了极大的便利,特别是对于一个WEB开发新手来说,它完全可以不用自己去维护WEB控件的状态,在进行事件驱动开发时,用户只管通过控件ID来获取当前控件的值,而其它的细节ASP.NET都是对用户透明的,所以非常易于入门。而它所带的负面影响也是明显,有时候也是而严重的,最严重的就如上的那篇回发事件执行很慢,甚至时常出现“Va

北风的专栏 1592

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

viewstate 应该注意的

对于大多数程序员而言,viewstate就是页面中的名字叫做__VIEWSTATE的隐藏控件,它使我们页面体积膨胀,不利于页面的seo优化;页面返送间都要携带更多的大量的数据,耗费更多的流量、延长响应时间。它使得我们很焦虑:禁用它,甚至不再使用web form,转向MVC,在MVC还没推出之前,甚至是转向其它的平台。。。 先不说那种取舍的对...

382

viewstate存储对象_将ViewState移至会话对象和更多的头绪

viewstate存储对象Some folks didn't agree with my recent comments on ViewState. That's cool, it's good to disagree. The truth is no doubt somewhere in the middle. My conclusion, and your take away shoul...

cunfuxiao7305的博客 142

ViewState初探

与刚接触 ASP.NET 页面的开发人员交谈时,他们通常向我提出的第一个问题就是:“那个 ViewState 到底是什么?”他们的语气中流露出的那种感觉,就象我来到一家异国情调的餐馆,侍者端上一道我从未见过的菜肴时的那种感觉 - 既疑惑不解,又充满好奇。但肯定有人认为它不错,否则就不会提供了。所以,我会先尝一尝,或许会喜欢上它,尽管它看上去的确很古怪! 对于 ViewState 也是如此,但是

johncools的博客 1109

ASP.NET WebForm Best Practice 之ViewState

关于ViewState我曾经有过几篇博客的讨论《客观看待ViewState对Asp.net程序作用和影响》,《"Validation of ViewState Mac failed" exception》《回发事件执行很慢的问题.》。时过今日,我想从我目前的经验来总结,我们该如何来控制ViewState才是比较合理的。 ViewState是ASP.NET的一个独创设计。它为用户在进行Web开发时带

阿不 699

ViewState 安全初探

ViewState 到底是什么?ViewState 用于维护页面的 UI 状态。Web 是没有状态的,ASP.NET 页面也没有状态,它们在到服务器的每个往返过程中被实例化、执行、呈现和处理。在 ASP.NET 之前,通过多次回传将值恢复到窗体字段中完全是页面开发人员的责任,他们将不得不从 HTTP 窗体中逐个拾取回传值,然后再将其推回字段中。幸运的是,现在 ASP.NET ...

AS565656的博客 313

Asp.net ViewState

1、基本比較 session viewState サーバ資源使用 true false html負担 false...

aidunfu9905的博客 336

(转)学习ViewState笔记

<br />1、大部分ASP.NET服务器控件是通过ViewState的方式储存其属性值的;<br />2、任何赋值给ViewState的变量都会被装箱为Object类型的变量;<br />3、在调用了TrackViewState()方法后,StateBag才开始跟踪其所包含项值的变化;<br />4、在TrackViewState()方法调用后,只要是出现了赋值操作那么就会使其被标记为脏数据,StateBag并不会判断赋值前后对应项的值是否出现了变化;<br />5、在_ViewState隐藏变量中存储的

yehaiping1214的专栏 601
上一篇: SQL ISNULL()函数
下一篇: Linux系统用户账号的管理
VS_URL
博客等级 码龄15年 12粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值