ASP.net View State

【Isaac Sim】无头服务器远程桌面连接实战:Turbovnc配置与常见问题解决 本文详细介绍了在无头GPU服务器上通过Turbovnc远程桌面连接并运行NVIDIA Isaac Sim的实战教程。针对无图形界面服务器运行仿真软件的核心痛点,文章提供了从Turbovnc安装配置、SSH隧道建立,到以普通用户身份启动服务、解决GLXBadFBConfig等常见图形错误的完整方案,帮助开发者在云端高效部署机器人仿真环境。 阅读详情

什么是ViewState?
对于ViewState,我们有许多的误解。Viewstate不保存控件,而是去保存form中对应ID控件的值,特别是那些由于他们没有和form一起post 而在页面回传时会丢失的控件的值。viewstate一般不要用来保存session或在页面间传输数据。在页面回传后,viewstate不能用来动态地创建页面的控件。他在页面回传之后不回复控件的值。甚至一个控件的viewstate被禁止了,在页面回传后,控件的值仍然不会丢失,比如textbox,dropdownlist控件。那什么是viewstate呢?viewstate保存最后一次在服务器上处理的页面状态。他不能保存那些被动态改变的控件的值。

viewstate是如何工作的?
所有的服务器端控件都有一个ViewState属性。如果他是enable的,这个控件的viewstate就起作用了。那viewstate是在哪里,是如何存储的呢?当一个页面第一次加载,所有的控件被序列化到viewstate,保存在一个叫_ViewState的隐藏form字段里。这个隐藏字段对应服务器端的ViewState对象。页面的ViewState使用System.Web.UI.StateBag对象存储键值对。当一个回传发生,页面反序列化ViewState然后恢复所有的控件。页面中保存控件的ViewState以base 64 编码格式存储成name - value。当一个页面重新加载,会调用两个和ViewState相关的方法, LoadViewState 和SaveViewState。下面是我的一个页面中的_ViewState隐藏字段。

< input type = " hidden "  name = " __VIEWSTATE "  value = " dNrATo45Tm5QzQ7Oz8AblWpxPjE9MMl0Aq765QnCmP2TQ== "   />

启用和禁止ViewState
在默认情况下,所有服务器控件的viewstate开启状态,通过以及几种途径来禁止。
1.页面级别
2.控件级别
3.应用程序级别
4.机器级别
页面级别禁止的方法是在页面的开始写入

<% @ Page EnableViewState  = " False "   %>  
or 
<% @ Page EnableViewState  = " True "   %>

控件级别是

< asp:TextBox id = " txtCode "  runat = " server” EnableViewState= " false "  />
or
< asp:TextBox id = " txtCode "  runat = " server "  EnableViewState = " true "   />

程序级别是在web.config中

< pages enableViewState = " false "   />
or
< pages enableViewState = " true "   />

机器级别是在machine.config中

< pages enableViewState = " true "  enableViewStateMac = " true "  ...  />
or
< pages enableViewState = " false "  ...  />

在viewstate中保存和取出值
viewstate能处理以下的类型
基本类型,基本类型数组,ArrayList 和Hashtable,任何可以序列化的对象。

以下代码是将ArrayList存到viewstate中并取出

ArrayList obj  =   new  ArrayList();
// Some code
ViewState[ " ViewStateObject " ]  =  obj;
  
obj = ViewState["ViewStateObject"];

性能问题
为了更好的页面呈现性能,viewstate应该尽可能的小。要记住Viewstate中的数据会占用很多的网络带宽。因此我们要谨慎的利用viewstate。如果页面和控件不需要回传,那么就要禁止viewstate属性。通常在aspx页面之外保存Viewstate会取得更好的性能表现。为了达到这个目的,我们可以使用SavePageStateToPersistenceMedium 和LoadPageStateFromPersistenceMedium 这两个方法。在web.config或machine.config设置来禁止某个程序的所有页面或全部程序页面的viewstate。

注意只有控件包含在<form runat=server>里才能存储viewstate。然而即使页面所有的viewstate被禁止,页面仍然在viewstate中保存20字节的数据,用来在回传时为相应的控件分配viewstate中的数据。所以当页面完全没有回传,移去runat="server"能减少20字节的数据。如果有很多这样的页面,20字节的节省也能在一定程度上减少带宽。viewstate应该在必要的时候使用。在DataGrid和DataRepeater这样的控件中要避免使用viewstate,因为这些控件的viewstate占用数据相当大。

下面我提供一个简单的用于计算页面viewstate大小的方法。创建一个MasterPageBase 类,然后其他所有的页面都要继承他。

public   class  MasterPageBase: System.Web.UI.Page
{
  
protected override void OnPreRender(EventArgs e)
  
{
    
object viewStateObject = HttpContext.Current.Request["__VIEWSTATE"];
    
if (viewStateObject == null)
      HttpContext.Current.Trace.Warn(
"The ViewState Size is:", "0");
    
else
      HttpContext.Current.Trace.Warn(
"The ViewState Size is:",
        HttpContext.Current.Request[
"__VIEWSTATE"].Length.ToString());
    
base.OnPreRender(e);
  }

}

安全问题
可以采取两个措施来避免viewstate被仿冒
使用EnableViewStateMac属性
给 ViewState中的内容加密
EnableViewStateMac会进行一个机器授权验证(MAC),这应在页面级别或程序级别使用。当设置时,这个属性会在viewstate呈现之前附加一个viewstate的hash值。当回传发生时,hash值会被重新计算和核对。如果他们不匹配,页面会拒绝显示,这样就确保了viewstate没有被纂改。

在machine.config中设置对viewstate内容的加密

< machineKey  validation ="3Des"   />  or  < machineKey  validation ="SHA1" />

viewstate容易出错的地方
当将一个页面的控件传输到另外一个页面(第二个页面)时,通常会出现错误。解决方法是在第二个页面中将viewstate禁用。

转载于:http://www.yongfa365.com/Item/ASP.net-View-State.html

【COMSOL超材料和超表面仿真设计】 超材料和超表面的设计通常需要自定义材料属性。在COMSOL中,可以通过定义介电常数和磁导率的张量来模拟超材料的特性。对于超表面,通常需要定义表面阻抗或等效电路模型。 阅读详情

相关推荐

OASIS协议标准文档的解读_第一部分

OASIS标准协议的文档的解读。完整原协议的中文翻译和解读。

洋葱的专栏 4903

Spring Web Flow 文档学习

官网资料 Spring Web Flow overview Spring Web Flow API Doc. Spring Web Flow Reference Guide 1. 介绍 1.1 环境需求 Java 1.8 及以上 Spring 5.0 及以上 1.2 基于Maven的Jar包引入 <dependency> <groupId>org.springframework.webflow</groupId> <artifactId>

wifiiii的博客 1481

深入博通PEX89000内部:那颗ARM CPU和Synthetic Mode到底能玩出什么花样?

本文深入解析博通PEX89000系列PCIe交换芯片内置的ARM CPU与Synthetic Mode技术,揭示其在AI计算和数据中心的智能潜能。通过ARM Cortex CPU的实时控制和Synthetic Mode的自治网络功能,PEX89000实现了GPU集群的动态拓扑重组和资源池化,大幅提升AI训练效率。文章还探讨了该技术在软件定义数据平面和弹性AI架构中的创新应用。

weixin_30776273的博客 212

Spring Web Flow —— 视图状态 - 100

基础 指定view-state的view属性的几种方式 按照默认名称在相对路径下查找view &amp;amp;amp;amp;lt;!-- 在flow配置文件同目录下查找名为enterBookingDetails的视图 --&amp;amp;amp;amp;gt; &amp;amp;amp;amp;lt;view-state id=&amp;amp;amp;quot;enterBookingDetails&amp;amp;amp;quot;&a

zou8944的博客 1662

用VFP计算 CRC-16 Modbus 校验位

1. Modbus是一种串行通信协议,最初由Modicon(目前属于施耐德电气公司)于1979年开发2. Modbus协议是应用在Modicon产品上的,后来才被移植到其他产品上3. Modbus协议的通信接口可以有多种选择,如RS232、RS485、以太网等。

lddnzx的博客 518

新一代XMOS会议四麦方案主控芯片 XVF3800

2023年,知名的音频芯片制造厂商 XMOS 正式发布了新一代会议麦阵芯片片 XVF3800 ,这款芯片采用最先进的四麦音频算法,可在嘈杂的环境中提供高质量语音,算法支持圆形、条形阵列,可根据应用场景组成不同的产品形态。传统的麦阵解决方案,不仅需要捕捉会议中的人声,也会同时捕捉环境中的其他噪声,而 XMOS 先进的语音算法解决了这一问题。声学回声消除功能可消除麦克风音频输入的回声,同时减少远端回声,使 XVF3800 能提取清晰的语音信号。• 180度拾音条形麦克风阵列。• 360度拾音环形麦克风阵列。

PawPaw_electron的博客 785

Spring Web Flow —— 基础 - 011

基础   Web Flow将一个流程分为若干个状态(可以理解为步骤),每个流程由若干个状态组成,通过特性的方式在步骤之间进行跳转,协同完成整个流程。   常用标签如下 &amp;lt;view-state&amp;gt; - 视图状态,用于渲染视图 &amp;lt;action-state&amp;gt; - 动作状态,用于专门执行操作 &amp;lt;transition&amp;gt; - 转移,用于状态间转移,转移由事件触发 &amp;l

zou8944的博客 1846

Maven

是一款自动化构建工具,专注于Java项目的构建、依赖的管理。

weixin_58738870的博客 2163

View State的作用和实现方式

简答:View State是微软实现的缓存机制。有点类似以前的表单中的隐藏控件。当 asp.net 执行某个页面时,该页面上的 viewstate 值和所有控件将被收集并格式化成一个编码字符串,然后被分配给隐藏窗体字段的值属性(即 )。由于隐藏窗体字段是发送到客户端的页面的一部分,所以 viewstate 值被临时存储在客户端的浏览器中。如果客户端选择将该页面回传给服务器,则 viewstate

半亩方塘 3724

从GitHub到海浪模拟:手把手教你配置WAVEWATCHⅢ 6.07.0的完整开发与测试环境

本文详细指导如何在Ubuntu系统中配置WAVEWATCHⅢ 6.07.0的开发与测试环境,涵盖虚拟机设置、依赖安装、源码编译及案例验证的全流程。通过步骤化教程,帮助科研人员快速搭建高效的海浪模拟平台,提升海洋数值模拟的研究效率。

weixin_42568801的博客 324

【Python】秋招机考 —— 2025/9/17 华为 AI 方向

秋招机考,华为 AI,使用 Python 完成编程。

一杯水果茶!足矣~ 1166

理解Asp.net中的View state

什么是ViewState?对于ViewState,我们有许多的误解。Viewstate不保存控件,而是去保存form中对应ID控件的值,特别是那些由于他们没有和form一起post 而在页面回传时会丢失的控件的值。viewstate一般不要用来保存session或在页面间传输数据。在页面回传后,viewstate不能用来动态地创建页面的控件。他在页面回传之后不回复控件的值。甚至一个控件的views

旅途 1041

KCP(快速可靠UDP)——用带宽换延迟的极致艺术

想象你是一个外卖平台的调度员。这就是KCP的本质——

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 202

Understanding ASP.NET View State

Understanding ASP.NET View State   Scott Mitchell 4GuysFromRolla.com May 2004 Applies to:    Microsoft® ASP.NET    Microsoft® Visual Studio® .NET Summary: Scott Mitchell looks at the benefits

mikemiller2的专栏 1014

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

理解ASP.NET View State(1)

理解ASP.NET View State(1)原文地址http://msdn2.microsoft.com/en-us/library/ms972976.aspx翻译:Jupiter日期:2008-3-1Scott Mitchell4GuysFromRolla.comMay 2004Applies to:   Microsoft® ASP.NET   Microsoft®

dreamliner的专栏 1805

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Cutting Edge The ASP.NET View State

  The ASP.NET View State  Dino Esposito Download the code for this article: CuttingEdge0302.exe (39KB)I n ASP.NET pages, the view state represents the sta

Ar7的专栏 1545

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

理解ASP.NET View State(2)

理解ASP.NET View State(2)步骤3-装载回传数据仅当页面已经被回传时才会发生装载回传数据阶段。(译者注:即IsPostBack == true)服务器控件可以通过实现IPostBackDataHandler接口表明它想要检查被回传的数据。在这个阶段,Page类从表单域中枚举回传数据,为对应的服务器控件搜索它想要的数据。如果它发现了特定的控件,它会检查这个控件是否实

dreamliner的专栏 1164

ASP.net 中的View State问题

如果控件为ReadOnly的,会导致View State的值丢掉。可以在OnPreRender 的时候设置ReadOnly来避免这个问题。 转载于:https://www.cnblogs.com/yangqianming/archive/2010/08/04/1792132.html...

weixin_30763397的博客 159

利用 View State 缓存优化 ASP.NET 性能 【已翻译100%】

简介 ASP.NET的视图浏览机制提供了客户端的管理方式.它能够保存请求过程中的所有数据. 这对于无状态显示的协议编程如HTTP提供了方便. ASP.NET的 View State被保存在页面上隐藏的Base64字符串中, 它记录了客户端到服务器的请求以及服务端到客户端的回应信息. <input id="__VIEWSTATE" type="hid...

weixin_33755557的博客 179
上一篇: ASP.NET中Cookie之Cookie基础知识
tflb521
博客等级 码龄23年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值