Web uygulamalarında, verilerin istemci tarafında saklanması yöntemlerinden biridir. Üzerinde geliştirme yaptığımız sayfada kullandığımız kontroller, database vs. gibi işlemleri postback sırasında şifrelenmiş olarak duran bir ViewState içerisine yazar. Daha sonra da sayfa tekrar yüklendiğinde bu kontrollerin özellikleri bu nesneden okunur. Kısaca çalışma mantığı budur. Şifrelenmiş şekilde bulunduğundan,
Cookie ve
QueryString'e göre daha güvenliklidir fakat yine de günümüzde şifrelenmiş verilerin rahatlıkla çözülebildiği teknoloji varken önemli bilgilerin bu şekilde saklanması pek tavsiye edilmez. Şimdi kısaca kullanımını gösteren küçük bir örnek verelim.
ViewState["UrunId"] = 15;
ViewState["Tablo"] = new DataTable("TestTable");
Verileri taşıyacağımız diğer sayfada ise,
int id = (int)ViewState["UrunId"];
DataTable dt = (DataTable)ViewState["Tablo"];
Dikkatinizi de çekmiştir, ikinci sayfada sakladığımız verileri kullanmak isterken cast işlemi gerçekleştirdik. Diğer sayfadan hangi değeri sakladığımızı ide'nin bilemeyeceği için mutlaka bizim ona belirtmemız(kastetmemiz) gerekir.
Son olarak da, kullandığımız bu ViewState'ler yine gereksiz yer kapladığından dolayı kullanılmayan ViewState'leri aşağıdaki komut yardımıyla da rahatlıkla silebiliriz.
ViewState.Remove("Tablo");