Bạn sử dụng thuộc tính ViewState của đối tượng Page để truy cập một đối tượng StateBag, mà cất giữ một tập hợp tên và những cặp giá trị trên máy tính khách. Bạn sử dụng tên để xác định giá trị đang được cất giữ. Tên là một string (chuỗi) và giá trị là một Object (đối tượng). Không giống một cookie, một người sử dụng không thể cản trở sự lưu trữ những giá trị sử dụng thuộc tính ViewState. Một sử dụng cho thuộc tính ViewState sẽ cất giữ một tên của người sử dụng.
Mẹo nhỏ:
Một khi những giá trị được gửi qua lại giữa máy khách và máy chủ phục vụ, bạn chỉ nên cất giữ một ít thông tin sử dụng thuộc tính ViewState. Đây là một giải pháp tốt hơn so với sử dụng những cookies bởi vì người sử dụng có thể luôn cản trở sự lưu trữ những cookies.
Ví dụ sau đây cất giữ myInt dưới tên count:
int myInt = 1;
ViewState["count"] = myInt;
Bạn có thể rồi truy xuất giá trị count sử dụng mã sau đây: myInt = (int) ViewState["count"];
Bởi vì một giá trị được cất giữ như một đối tượng, bạn phải ép nó tới kiểu đặc biệt bạn muốn sử dụng. Trong ví dụ này, giá trị count được ép tới một int.
Danh sách 15.7 cho thấy một ví dụ về trang ASP .NET sự sử dụng thuộc tính ViewState để theo dõi số lần trang đã được xem.
<!--
ViewStateTest.aspx illustrates the use of ViewState to store information on the client
--> <html> <head>
<script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e) {
// check if count is null
if (ViewState["count"] == null) {
// count is null, so initialize myInt to 1 myInt = 1;
} else {
// retrieve count and increment myInt by 1 myInt = (int) ViewState["count"] + 1; }
// set count value to myInt ViewState["count"] = myInt; // display myInt in myLabel
myLabel.Text = "This page has been viewed "+ myInt.ToString() + " times.";
} </script> </head> <body>
<asp:Label id="myLabel" runat="server"/> <form runat="server">
<asp:Button text="Press the Button!" runat="server"/> </form>
</body> </html>