ASP.NET 允许您将信息存储在 HiddenField 控件中,此控件将呈现为一个标准的 HTML 隐藏域。
隐藏域在浏览器中不以可见的形式呈现,但您可以就像对待标准控件一样设置其属性。
当向服务器提交页时,隐藏域的内容将在 HTTP 窗体集合中随同其他控件的值一起发送。
隐藏域可用作一个储存库,您可以将希望直接存储在页中的任何特定于页的信息放置到其中。
安全注意 
恶意用户可以很容易地查看和修改隐藏域的内容。请不要在隐藏域中存储任何敏感信息或保障应用程序正确运行的信息。
HiddenField 控件在其Value属性中只存储一个变量,并且必须通过显式方式添加到页上。
为了在页处理期间能够使用隐藏域的值,必须使用 HTTP POST 命令提交相应的页。如果在您使用隐藏域的同时,为了响应某个链接或 HTTP GET 命令而对页进行了相应处理,那么隐藏域将不可用。
HiddenField 控件用于存储一个值,在向服务器的各次发送过程中,需保持该值。它呈现为 <input type= "hidden"/> 元素。
通常情况下,Web 窗体页的状态由视图状态、会话状态和 cookie 来维持。但是,如果这些方法被禁用或不可用,则可以使用 HiddenField 控件来存储状态值。
若要指定 HiddenField 控件的值,请使用 Value 属性。
在向服务器的各次发送过程中,当 HiddenField 控件的值更改时,将引发ValueChanged事件
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">
function PageLoad()
{
// Set the value of the HiddenField control with the
// value from the TextBox.
form1.ValueHiddenField.value = form1.ValueTextBox.value;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="ValueTextBox" runat="server" />
<br />
<input type="submit" name="SubmitButton" value="Submit" οnclick="PageLoad()" />
<br />
<asp:Label ID="Message" runat="server" />
<asp:HiddenField ID="ValueHiddenField" runat="server" OnValueChanged="ValueHiddenField_ValueChanged" />
</div>
</form>
</body>
</html>
总结
可以在页上的隐藏域中存储特定于页的信息,作为维护页的状态的一种方式。
如果使用隐藏域,最好在客户端上只存储少量经常更改的数据。
注意: 
如果使用隐藏域,则必须使用 HTTP POST 方法向服务器提交页,而不是使用通过页 URL 请求该页的方法(HTTP GET 方法)向服务器提交页。 
使用隐藏域的优点
1.不需要任何服务器资源:隐藏域在页上存储和读取。 
2.广泛的支持:几乎所有浏览器和客户端设备都支持具有隐藏域的窗体。
3.实现简单:隐藏域是标准的HTML控件,不需要复杂的编程逻辑。
使用隐藏域的缺点
1.潜在的安全风险   
隐藏域可以被篡改。如果直接查看页输出源,可以看到隐藏域中的信息,这导致潜在的安全性问题。
您可以手动加密和解密隐藏域的内容,但这需要额外的编码和开销。如果关注安全,请考虑使用基于服务器的状态机制,从而不将敏感信息发送到客户端。
2.简单的存储结构   
隐藏域不支持复杂数据类型。
隐藏域只提供一个字符串值域存放信息。
若要存储多个值,必须实现分隔的字符串以及用来分析那些字符串的代码。您可以手动分别将复杂数据类型序列化为隐藏域以及将隐藏域反序列化为复杂数据类型。但是,这需要额外的代码来实现。
如果您需要将复杂数据类型存储在客户端上,请考虑使用视图状态。视图状态内置了序列化,并且将数据存储在隐藏域中。
3.性能注意事项   
由于隐藏域存储在页本身,因此如果存储较大的值,用户显示页和发送页时的速度可能会减慢。
4.存储限制   
如果隐藏域中的数据量过大,某些代理和防火墙将阻止对包含这些数据的页的访问。因为最大数量会随所采用的防火墙和代理的不同而不同,较大的隐藏域可能会出现偶发性问题。
如果您需要存储大量的数据项,请考虑执行下列操作之一:
(1)将每个项放置在单独的隐藏域中。
(2)使用视图状态并打开视图状态分块,这样会自动将数据分割到多个隐藏域。
(3)不将数据存储在客户端上,将数据保留在服务器上。向客户端发送的数据越多,您的应用程序的表面响应时间越慢,因为浏览器需要下载或发送更多的数据。
Sql Server2005 Transact-SQL 新兵器学习总结之-总结 
MS SQL数据库备份和恢复存储过程(加强版本) 
sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结) 
WAP开发资料站(最新更新) 
自定义格式字符串随笔 (IFormattable,IFormatProvider,ICustomFormatter三接口的实现) 
Mcad学习笔记之异步编程(AsyncCallback 委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结) 
Mcad学习笔记之通过反射调用類的方法,屬性,字段,索引器(2種方法) 
Mcad学习笔记之序列化(2进制和Soap序列化) 
Mcad学习笔记之委托再理解(delegate的构造器,BeginInvoke,EndInvoke,Invoke4个方法的探讨) 
WinForm开发,窗体显示和窗体传值相关知识总结 
Mcad学习笔记之Microsoft Windows服务 
copy某目錄下的所有的目錄和文件到目的目錄(目錄數據備份) 
ASP.NET状态管理之一(概括篇)
我的系列文章
A.Sql Server2005 Transact-SQL 新兵器学习 
B.MCAD学习 
C.代码阅读总结 
D.ASP.NET状态管理 
E.DB(数据库) 
F.WAP 
G.WinForm 
H.Flex
我的好文推荐
FlexAir开源版-全球免费多人视频聊天室,免费网络远程多人视频会议系统((Flex,Fms3联合开发))<视频聊天,会议开发实例8> 
Sql Server2005 Transact-SQL 新兵器学习总结之-总结 
MS SQL数据库备份和恢复存储过程(加强版本) 
sql server中分布式查询随笔(链接服务器(sp_addlinkedserver)和远程登录映射(sp_addlinkedsrvlogin)使用小总结) 
ASP.NET2.0国际化/本地化应用程序的实现总结(多语言,多文化页面的实现) 
WAP开发资料站(最新更新) 
自定义格式字符串随笔 (IFormattable,IFormatProvider,ICustomFormatter三接口的实现) 
Mcad学习笔记之异步编程(AsyncCallback 委托,IAsyncResult接口,BeginInvoke方法,EndInvoke方法的使用小总结) 
Mcad学习笔记之通过反射调用類的方法,屬性,字段,索引器(2種方法) 
Mcad学习笔记之序列化(2进制和Soap序列 化) 
Mcad学习笔记之委托再理解(delegate的构造器,BeginInvoke,EndInvoke,Invoke4个方法的探讨) 
ASP.NET状态管理之一(概括篇) 
Flex,Fms学习笔记
本文转自aierong博客园博客,原文链接:http://www.cnblogs.com/aierong/archive/2004/07/14/23953.html,如需转载请自行联系原作者

ASP.NET状态管理之三(隐藏域HiddenField)相关推荐

  1. ASP.NET状态管理之一(概括篇)

    每次将网页发送到服务器时,都会创建网页类的一个新实例.在传统的Web编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失.例如,如果用户将信息输入到文本框,该信息将在从 ...

  2. ASP.NET 状态管理概述(MSDN)

    每次将网页发送到服务器时,都会创建网页类的一个新实例.在传统的 Web 编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失.例如,如果用户将信息输入到文本框,该信息将 ...

  3. ASP.NET状态管理详解,让你明明白白

    开发WinFrom的程序员可能不会在意维护应用程序的状态,因为WinFrom本身就在客户端运行,可以直接在内存中维护其应用程序状态.但ASP.NET应用程序在服务器端运行,客户端使用无状态的http协 ...

  4. ASP.NET 状态管理概览

    页面每次被回传到服务器的时候都会创建 Web 页面类的一个新实例.在传统的 Web 开发中,这意味着在每次回传的过程中,页面中所有与页面和控件相关联的信息都将被丢失.例如,如果用户在一个文本框中输入了 ...

  5. ASP.NET状态管理之五(Cookie)

    Cookie 提供了一种在 Web 应用程序中存储用户特定信息的方法. 例如,当用户访问您的站点时,您可以使用 Cookie 存储用户首选项或其他信息.当该用户再次访问您的网站时,应用程序便可以检索以 ...

  6. 【转】【C#.NET】ASP.NET状态管理之一:Cookie

    [C#.NET]ASP.NET状态管理之一:Cookie 状态管理是你对同一页或不同页的多个请求维护状态和页信息的过程.与所有基于 HTTP 的技术一样,Web 窗体页是无状态的,这意味着它们不自动指 ...

  7. ASP.NET状态管理之六(缓存Cache)

    ASP.NET状态管理之六(缓存Cache) ASP.NET 为您提供了一个强大的.便于使用的缓存机制,用于将需要大量服务器资源来创建的对象存储在内存中.缓存这些类型的资源会大大改进应用程序的性能. ...

  8. ASP.NET状态管理

    第一部分:页面状态介绍 Http协议----"无状态协议" Web服务器每分钟对上千个用户进行管理的一种方式就是执行所谓的"无状态"链接.只要有一个希望浏览器返 ...

  9. ASP.NET状态管理之十三(总结)

    状态管理是您对同一页或不同页的多个请求维护状态和页信息的过程.与所有基于 HTTP 的技术一样,Web 窗体页是无状态的,这意味着它们不自动指示序列中的请求是否全部来自相同的客户端,或者单个浏览器实例 ...

最新文章

  1. JVMTOP JVM 监视工具
  2. EC笔记:第4部分:19、设计class犹如设计type
  3. IT人应当知道的10个行业小内幕
  4. 读取文件内容返回ListString类型
  5. nupkg格式_nupkg文件怎么打开(package程序安装)
  6. 2021高考成绩答题卡查询,【助力高考】2021届高考答题卡原来长这样,赶快看看...
  7. 【书评】《IPD 华为研发之道》(著者:刘选鹏)
  8. 2006-01-23,科比-布莱恩特得了81分
  9. 解决问题的能力和个人学习能力总结。
  10. 润乾报表Api导出word只读
  11. 全面解析JavaScript中对于字符串子串的查询方法
  12. 摄像头poe供电原理_无线监控中poe供电原理图解
  13. 《惢客创业日记》2019.01.21(周一)你还记得米卢吗?
  14. sklearn预测评估指标:混淆矩阵计算详解-附Python计算代码
  15. 计算机无法识别佳能70d相机,佳能600D连接电脑无法识别怎么办
  16. 南开22春学期(高起本1709、全层次1803-2103)《职场心理(麦课)》在线作业【标准答案】
  17. Python 自定义函数的两种类型(wzl)
  18. 基于JAVA工厂生产计划与进度管理系统计算机毕业设计源码+数据库+lw文档+系统+部署
  19. coco关键点数据集水平翻转数据增强,连同标注一起变化
  20. mysql 隐式转换 索引_MySQL SQL优化之字符串索引隐式转换

热门文章

  1. Gear VR推出移动冒险InMind 2
  2. 删库跑路大神的一生:曾在家造炸弹被捕,现卖房押宝NFT,原是开源创业之星...
  3. 我在亦庄见了说中文的爱因斯坦,会比心的熊猫,还有一场意念打字大赛
  4. 命令行里给个注释,AI就能自动生成代码
  5. 武大首位女院士逝世,国际再生资源领域最高奖中国第一人,享年80岁
  6. 刚刚,旷视开源深度学习框架「天元」:Brain++内核,研发和落地都在用;孙剑:COCO三连冠背后的秘密武器...
  7. 为什么说新型冠状病毒疫苗会研制成功?
  8. Redis详解(八)------ 主从复制
  9. WCF技术剖析之三十二:一步步创建一个完整的分布式事务应用
  10. (原创)我对未来的人类的发展,以及AI技术发展的一些思考。