asp表单隐藏域存储html,asp.net 表单 ViewState隐藏域 Web程序 - 贪吃蛇学院-专业IT技术平台...

一、ViewState概述

①ViewState是基于webform的

②在web窗体控件属性处设置runat = "server",这个控件会被附加一个隐藏的属性_ViewState,_ViewState存放了所有控件在ViewState中的状态值。

③页面会在输出时,自动添加下面的隐藏域:

f52d656ddcfef61acf360ad910360b51.png

value处的值只是base64编码并不是加密。

④ViewState是一个名称/值的对象集合。

⑤当请求某个页面时,ASP.NET会把所有控件的状态序列化成一个字符串,然后作为窗体的隐藏属性送到客户端,当客户端将页面回传时,ASP.NET分析回传的窗体属性,并赋给控件对应的值。(恢复现场)

⑥ViewState不能存储所有的数据类型,仅支持:String、Integer、Boolean、Array、ArrayList、Hashtable

二、ViewState原理

bd8715a39675bfef512302cb2265d62b.png

①浏览器请求Default.aspx页面。

②在服务器端 发现创建的ViewState 这个时候 会自动创建一个名字叫做__VIEWSTATE(双下滑线 全部是大写)的隐藏域 其隐藏域的值经过base64加密以后返回到浏览器端这一加密过程在页面生命周期的SaveState事件中的SaveAllState方法中完成。

③当浏览器提交表单的时候 将__VIEWSTATE的隐藏域也一起提交到服务端 这个时候 页面生命周期的ReadState事件的ReadAllState方法会将加密后的值反base64解密 最后将值赋值给名字叫做xx的ViewState。

④最后来操作ViewState中的值。

三、使用

1.使用原因

由于http是无记忆无状态的协议。页面传值给服务器,都是通过form表单,且控件自己必须有name属性与value才可以得到值。但是像显示动态信息很多情况下并不都是使用满足上述条件的控件,所以需要将http伪装为有记忆的。而viewstate就是可以事先这个伪装术的策略。

2.使用方法

① 条件与设置

710850903763e0740509062527f2ca4a.png

② 实例

aspx.cs文件:

3d3f9881821c4c7bfa781ef3c1ac6290.png

aspx界面(就一个自增按钮):

e9631ba6edb0a7f8e4c86c6c1dbda3ca.png

运行效果:

9e62693bf2661f5f982601d646175b73.gif

③ 禁用方法

在默认情况下,所有服务器控件的viewstate开启状态,通过以及几种途径来禁止。

1.页面级别

2.控件级别

3.应用程序级别

4.机器级别

页面级别禁止的方法是在页面的开始写入

spanstyle="font-family:MicrosoftYaHei;"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值