Viewstate

ASP.NET teknolojisinin üretilen bir web sayfasına ait vaziyeti (state) kodlanmış olarak sakladığı görünmez form elemanı.

<input type="hidden" name="__VIEWSTATE" value="dDwxODY0MDMxMTMxO3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDU+O2k8Nz47aTw5Pjtp2w8dDw7bDx..." />

Bu form elemanı, sayfanın kendi kendine postalanması sürecinde (PostBack) ve sonrasında rol âlır. Yeniden yüklenen sayfada kontroller, bir önceki vaziyetlerini korumuş olurlar. Aradaki bilgi transferi ViewState elemanı ile olur.

ViewState öntanımlı olarak aktiftir. Sayfa genelinde ViewState tutulmasını engellemek için ASP.NET tepe yönergeleri kullanılır:
<%@ Page EnableViewState="false" %>

ViewState kontrol bazında da kapatılabilir:
<asp:label enableViewState="false" runat="server" />

Kritik 
ViewState esasında, Microsoft'un, Web uygulamalarını Visual Basic Form uygulamaları tarzında çalıştırma maksadına hizmet etmektedir. Sayfadaki kontroller arttıkça boyutunun kontrolsüz biçimde büyümesi ve bundan dolayı talep esnasında problemlere neden olması en önemli handikapıdır.

Günümüzde sayfa vaziyeti değişmeden sunucu tabanlı görevler ifa etmek için AJAX yaklaşımı yaygın olarak kullanılmaktadır. Nitekim Microsoft da ASP.NET için AJAX eklentileri çıkararak bu eğilime uymuştur.

Son olarak ASP.NET için MVC deseninin uygulanmasıyla, ViewState elemanının ve PostBack temelli Web Formları mimarisinin ASP.NET dünyasında en azından tek alternatif olmayacağını söyleyebiliriz.

Dış bağlantılar 
 Understanding ASP.NET ViewState - Scott Mitchell 
 ViewState: All You Wanted to Know - Paul Wilson 
 The ASP.NET View State - Dino Esposito 
 ViewState'in Kod Yapısı ve ViewState Decode - Ahmet Çığşar

.NET Framework