دوره های آموزشی
خانه / Asp Form / View State چیست و چگونه در ASP.Net کار می کند

View State چیست و چگونه در ASP.Net کار می کند

در این مقاله از آموزش ASP.NET به معرفی View State خواهیم پرداخت و خواهیم گفت View State چیست و چگونه در ASP.Net کار می کند.

یک برنامه وب ناپایدار است به این معنی هر بار که یک درخواست از سرور جهت دریافت یک صفحه می کنیم یک نمونه جدید از آن صفحه ساخته می شود و در این  رفت و برگشت صفحه قبلی از بین می رود. دلیل این اتفاق هم این است که سرور همه کنترل های ایجاد شده صفحه را بعد از رفت و برگشت نابود می کند.بنابراین برای حفظ مقادیر کنترل ها از تکنیک مدیریت وضعیت (state management) استفاده می کنیم.

تکنیک مدیریت وضعیت

مدیریت وضعیت به ۲ دسته تقسیم می شود :

View State چیست

 

 

 

 

 

 

 

 

 

 

 

 

اکنون به شرح View Sate  می پردازیم:

View State چیست ؟ 

View State روشی برای حفظ کردن مقادیر صفحه و کنترل ها هنگام  رفت و برگشت صفحه است. که جزء تکنیک های مدیر وضعیت در سطح صفحه است. View State به طور پیش فرض فعال است و بطور معمول داده های هر کنترل صفحه را سریال می کند بدون در نظر گرفتن اینکه آن صفحه    post-back باشد.

برای درک بهتر یک پروژه ایجاد می کنیم تا ببینیم بدون View State چه مشکلاتی ایجاد می شود :

۱- یک پروژه از نوع  ASP.NET Empty Web Application ایجاد کرده و یک فرم وب (Web Form) به آن اضافه کنید.

۲- ۲ تکست باکس و ۲ دکمه به صفحه اضافه کنید .کدهای صفحه باید به شکل زیر باشد :

حال کد های زیر را بنویسید :
خروجی باید به شکل زیر باشد:

آموزش ASP.NET

ASP.NET

 

 

 دلیل این اتفاق این است که همه کنترل هاکلاس هایی هستند که  برروی سرور ایجاد می شوند و بعد اینکه صفحه با فرمت HTML  به کاربر برگشت می شود همه اشیاء موجود در سرور از بین می رود.

بعد از اینکه برروی دکمه Submit کلیک می کنیم مقدار user name و password  به سرور ارسال می گردد و ما نمی توانیم مقدار آن را بازیابی کنیم زیرا بعد از postback  نمونه کنترل ایجاد شده از بین می رود و با کلیک کردن برروی دکمه  Restore سرور درخواست جدید دریافت می کند و نمی تواند مقدار TextBox را بازیابی کند.

ویژگی های View State

سه  ویژگی اصلی  view state :

  1. مقدار کنترل های را بعد از post-back بدون استفاده از session حفظ می کند.
  2. مقادیر صفحات و ویژگی کنترل های  تعریف شده در صفحه را ذخیره می کند.
  3. یک Provider سفارشی View State ایجاد می کند که این امکان را به شما می دهد اطلاعات View State را در پایگاه داده ذخیره کنید.

حال به نحوه ذخیره کردن مقدار در View State در مراحل قبل می پردازیم :

این کدها را وارد کنید :

خروجی باید به شکل زیر باشد :

آموزش asp.net با c#

آموزش گام به گام طراحی سایت با asp net

 

بعد از کلیک برروی دکمه Submit مقدار user name و password به  View State تحویل داده می شود و  View State مقدار آنها را در طی فرایند post-back ذخیره میکند.

بعد از کلیک برروی دکمه Restore ما می توانیم به این مقادیر دست پیدا کنیم . مقادیر در طی فرایند post-back حفظ شده و در یک فیلد مخفی که به صروت رشته است ذخیره می گردد.

مزایای View state :

  1. راحتی در استفاده.
  2. نیاز به منابع سرور نیست : View State در سختار  page load قرار دارد.
  3. بهبود امنیت : می توان آن را رمز گزاری و رمز گشائی کرد.

معایب View state :

  1. ریسک امنیتی : اطلاعات View state  در سورس صفحه وب قابل روئیت است . شما می توانید آنها را رمز گزاری و رمز گشائی کنید. بنابراین برای  اطلاعات حساس از این روش استفاده نکنید.
  2.  Performance (کارایی)  : در صورتیکه اطلاعات زیادی داریم نباید از این تکنیک استفاده کنیم چون View state همه آنها را در صفحه ذخیره می کند و این باعث می شود که لود صفحه کند شود.
  3. محدودیت Device : موبایل ها شاید به اندازه کافی حافظه برای ذخیره میزان زیاد داده   View state را نداشته باشند.
  4. از آن تنها برای ذخیره مقادیر صفحات کوچک استفاده می شود.

چه مواقعی باید از View State استفاده کرد:

  1. وقتی مقدار داده کم باشد
  2. عدم استفاده از داده های امن

 نحوه فعال و غیر فعال کردن View State

View State را می توان در یک کنترل و یا  در تمام صفحه فعال یا غیر فعال کرد برای غیر فعال کردن View State در یک کنترل مقدار پراپرتی EnableViewState برابر false قرار می دهیم.

TextBox1.EnableViewState=false

برای غیر فعال کردن View State در کل صفحه مقدار EnableViewState در کد صفحه false قرار می دهیم مانند کد زیر :

<%Page Language=”C#” EnableViewState=”false”

درباره ی محمد آذرنیوا

محمد آذری
من محمد آذرنیوا، نویسنده و مدرس دوره های برنامه نویسی ، طراحی وب و تحلیل گر پایگاه داده هستم و قصد دارم در این وبسایت مطالب کاربردی در این زمینه را با شما به اشتراک بگذارم. بیشتر از یک برنامه نویس باشید...

همچنین ببینید

الگوی ریپوزیتوری ( Repository Pattern ) در ASP.NET MVC

در این مقاله ، در مورد الگوی ریپوزیتوری (Repository Pattern ) که اغلب برای ایجاد برنامه ...

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *