zoukankan      html  css  js  c++  java
  • ViewState

    ViewState["key"] = "value";在后台输入这段代码,在前台浏览会生成
    <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE2MTY2ODcyMjkPFgIeA2tleQUFdmFsdWVkZOJehgmZf58s85cI+39pgF1pPFcyVM1IiB6lpeVMlIHT" />
    
    ViewState以键值对形式存在隐藏域当中,服务器将ViewState里保存的值经过Base64编码后,自动添加到页面的隐藏域中。
    我们把value用ViewStateDecoder打开会看到是保存在一个ArrayList中
    image
    我们输入两个ViewState
    ViewState["key"] = "value";
    ViewState["key2"] = "value2";再看结果
    image
    这样我们可以通过Response.Write(ViewState["key"].ToString());//输出结果为value
    注意:ViewState不能存储所有的数据类型,仅支持可序列化对象。

    非单值服务器控件的状态也自动保存在ViewState中

    例如:下拉框。(文本框是单值控件,所以不会保存在ViewState中)服务器在接收到用户请求一个页面后,会自动在请求报文中找看是否包含__VIEWSTATE的隐藏域,如果有,则将中间的值解码后添加到页面的ViewState属性中。

    服务器在输出的时候,也会自动的将ViewState中的值添加到表单里名叫__VIEWSTATE的隐藏域中,VIEWSTATE适用于同一个页面在不关闭的情况下多次与服务器交互

    使用ViewState的前提:页面上必须有一个服务器端窗体标记(<form runat=“server”>)

    禁用ViewState

    禁用ViewState后还是会生成ViewState,但是生成的没 那么多,因为不会保存服务端控件的值,ViewState主要保存服务器端控件的属性值,用户定义的ViewState键值对,禁用控件的事件仍旧可以用.

    禁用ViewState的方法,禁用单个控件的ViewState设定enableviewstate=false,禁用ViewState以后TextBox版本不受影响,Div版本受影响,因为input的value不依靠ViewState。

    禁用整个页面的,在aspx的Page指令区加上EnableViewState="false" 。内网系统、互联网的后台可以尽情的用ViewState。

    当某些控件的某些属性不属于浏览器表单的提交范围时,fw将会把这些属性添加到ViewState中保存。WebForm的IsPostBack依赖于__ViewState

  • 相关阅读:
    外设驱动库开发笔记5:AD7705系列ADC驱动
    ROS+LEDE最强上网软路由
    Flume1.9.0的安装、部署、简单应用(含分布式、与Hadoop3.1.2、Hbase1.4.9的案例)
    通过 Sqoop1.4.7 将 Mysql5.7、Hive2.3.4、Hbase1.4.9 之间的数据导入导出
    Hadoop 3.1.2(HA)+Zookeeper3.4.13+Hbase1.4.9(HA)+Hive2.3.4+Spark2.4.0(HA)高可用集群搭建
    Centos7 二进制安装 Kubernetes 1.13
    Centos7 使用 kubeadm 安装Kubernetes 1.13.3
    go get获取gitlab私有仓库的代码
    Nginx设置Https反向代理,指向Docker Gitlab11.3.9 Https服务
    Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录
  • 原文地址:https://www.cnblogs.com/automation/p/2873090.html
Copyright © 2011-2022 走看看