Welcome 微信登录

首页 / 网页编程 / ASP.NET / ASP.NET状态管理之三(隐藏域HiddenField)

ASP.NET状态管理之三(隐藏域HiddenField)2012-01-22 博客园 aierongASP.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" onclick="PageLoad()" />      <br />      <asp:Label ID="Message" runat="server" />      <asp:HiddenField ID="ValueHiddenField" runat="server" OnValueChanged="ValueHiddenField_ValueChanged" />    </div>  </form></body></html>