View state
همانگونه که اطلاع دارید کنترل های سرویس دهنده ASP.NET از view state برای بخاطر سپردن state استفاده می نمایند . اطلاعات view state در یک فیلد مخفی نگهداری شده و بطور اتوماتیک پس از هر postback برای سرویس دهنده ارسال می گردد . view state محدود به کنترل های سرویس دهنده نمی گردد و در صورت ضرورت می توان مجموعه ای از اطلاعات مورد نیاز را مستقیما” در مجموعه view state ذخیره تا امکان بازیابی آنها پس از هر postback فراهم شود . نوع های مختلفی را می توان در view state ذخیره نمود . نوع های داده ساده و اشیاء سفارشی نمونه هائی در این زمینه می باشند .
خصلت ViewState صفحه، مجموعه view state را ارائه می نماید . این خصلت یک نمونه از کلاس مجموعه StateBag است .برای اضافه کردن و حذف آیتم هائی در این کلاس ، از گرامری مشابه با یک دیکشنری استفاده می گردد که در آن هر آیتم دارای یک نام منحصر بفرد است .
کد زیر نحوه استفاده از view state را نشان می دهد .

state

دستور فوق ، مقدار ۱ را در مجموعه view state قرار داده و به آن یک نام منحصربفرد را نسبت می دهد ( Counter ) . در صورتی که آیتم دیگری با همین نام در view state موجود نباشد ، یک آیتم جدید بطور اتوماتیک به آن اضافه می گردد . در صورتی که یک آیتم با نام Counter در view state موجود باشد ، با مقدار فوق جایگزین می گردد .
برای بازیابی آیتم های ذخیره شده در view state از نام نسبت داده شده به هر یک از آنها استفاده می گردد . همچنین ، لازم است که مقدار بازیابی شده را با استفاده از گرامر casting به نوع داده مناسب تبدیل نمود چراکه مجموعه ViewState تمامی آینم ها را به عنوان اشیاء عام ذخیره می نماید تا بتواند با نوع های داده مختلف سرو کار داشته باشد .
کد زیر نحوه بازیابی مقدار نسبت داده شده به Counter از view state و تبدیل آن به یک عدد صحیح را نشان می دهد .

ing

در صورت عدم وجود اطلاعات مورد نظر در view state با یک NullReferenceException مواجه خواهیم شد . بنابراین ، لازم است که همواره قبل از بازیابی و تبدیل داده ذخیره شده در view state از وجود آن در ساختار فوق اطمینان حاصل نمود .
برای آشنائی بیشتر با نحوه بکارگیری view state در برنامه های وب به بررسی یک نمونه مثال کاربردی خواهیم پرداخت .