首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 2.0 HiddenField 控件深度解析:狀態管理的隱形利器

     編輯:關於ASP.NET

HiddenField 控件顧名思義是隱藏輸入框的伺服器控件,專門用於儲存那些不需要顯示在頁面上、且安全性要求不高的資料。雖然 ASP.NET 已提供 ViewState、Session、Cookie 等多種狀態管理機制,但 HiddenField 仍有其獨特價值:當 ViewState 被停用、Cookie 被瀏覽器封鎖、或 Session 因逾期失效時,HiddenField 成為最可靠的備選方案。

核心屬性與事件

HiddenField 控件呈現為標準的 <input type="hidden" /> HTML 元素,加上 runat="server" 即成為伺服器控件。其主要屬性與事件如下:

<asp:HiddenField
  EnableTheming="True|False"
  EnableViewState="True|False"
  ID="string"
  OnDataBinding="DataBinding event handler"
  OnDisposed="Disposed event handler"
  OnInit="Init event handler"
  OnLoad="Load event handler"
  OnPreRender="PreRender event handler"
  OnUnload="Unload event handler"
  OnValueChanged="ValueChanged event handler"
  runat="server"
  SkinID="string"
  Value="string"
  Visible="True|False"
/>

關鍵使用細節

  • Value vs Text:HiddenField 沒有 Text 屬性,只能透過 Value 設定或取得值。這與 DropDownList、CheckBoxList 等控件的命名慣例一致——Text 供用戶閱讀,Value 供程式邏輯處理。
  • 安全性警示:HiddenField 的值會呈現在用戶端瀏覽器原始碼中,絕不可用於儲存敏感資訊(如密碼、Token 等)。
  • 傳輸限制:HiddenField 依賴 HTTP POST 協定傳遞資料,若頁面使用 GET 方法或透過超連結開啟新視窗,該控件將失效。

實戰範例:計算按鈕點擊次數

<%@ Page Language="C#" %>
<script runat="server">
  void Button1_Click(object sender, EventArgs e)
  {
    if (HiddenField1.Value == String.Empty)
      HiddenField1.Value = "0";
    HiddenField1.Value = (Convert.ToInt32(HiddenField1.Value) + 1).ToString();
    Label1.Text = HiddenField1.Value;
  }
</script>
<html>
<body>
  <form runat="server">
    <asp:HiddenField id="HiddenField1" runat="server" />
    <asp:Button id="Button1" Text="點擊按鈕" OnClick="Button1_Click" runat="server" />
    點擊 <asp:Label id="Label1" Text="0" runat="server" /> 次
  </form>
</body>
</html>

此範例展示如何在按鈕點擊事件中累加計數並保存在 HiddenField 中,實現頁面回傳間的資料持久化。

常見誤區澄清

HiddenField 不能取代 Session 進行長期狀態維護。若用戶重新開啟瀏覽器,計數器會歸零,因為隱藏欄位的生命週期僅限於單一頁面的回傳週期。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved