سه شنبه , آبان ۲۹ ۱۳۹۷

ViewBag و Viewdata چیست

ViewBag و Viewdata چیست

Viewbag چیست

برای انتقال اطلاعات بین درخواست های مختلف یا Request ها در Asp.net core می توان از ViewBag استفاده کرد. شما با استفاده از دستور ViewBag می توانید اطلاعات را به صورت dynamic بین کنترلر و ویو جابجا کنید. در ادامه با مقاله ViewBag و Viewdata چیست از وب سایت Aspcore.ir در خدمت شما هستیم.

 

برای استفاده از یک ViewBag کافیست به صورت زیر عمل کنید :

 

viewbag

در مثال بالا در اکشن متد Index یک ViewBag را تعریف کرده ایم.

بعد از کلمه ViewBag یک نقطه و پس از آن یک نام دلخواه را قرار می دهیم. حال به راحتی می توان در ویوی Index به مقدار این ViewBag دسترسی داشت.

تا اینجای کار متوجه شدید که ViewBag چیست و چگونه از آن استفاده می شود.

 

ViewData چیست

در Asp.net Core گزینه ای دیگر هم برای انتقال اطلاعات بین کنترلر و ویو وجود دارد که ViewData نامیده می شود.

کاربر ViewData هم مشابه با viewBag می باشد. برای استفاده از یک ViewData کافیست به صورت زیر عمل کرد.

 

viewdata

همان طور که ملاحظه می فرمایید هر viewData یک کلید (در مثال ما Name) از نوع رشته دارد که توسط این کلید می توان به آن مقداردهی کرد یا مقدار آن را دریافت کرد.

 

دریافت مقادیر viewBag و ViewData در View

پس از اینکه اطلاعاتی را توسط ViewBag و یا ViewData در کنترلر ارسال کردیم می توان به راحتی و در هر کجای ویو مانند زیر مقادیر ان را دریافت کرد.

 

viewbag

 

تفاوت های ViewBag و ViewData چیست

  • تفاوت اول اینکه ViewData یک Dictionary Object می باشد و توسط یک کلید از نوع رشته مقداردهی می شود و یا مقدار آن دریافت می شود.
  • viewBag یک خاصیت داینامیک می باشد و می توان توسط آن داده های ساده و غیرساده (مانند لیست ها و آرایه ها و یا رشته های جیسون) را ارسال کرد. ViewBag از سی شارپ نسخه ۴ وجود داشته است. دقت نمایید که توسط ViewData هم داده های غیرساده قابل ارسال است. اما مکانیزم ارسال متفاوت است.
  • سرعت انتقال اطلاعات در viewData سریعتر می باشد.

 

ViewBag و ViewData در چه چیزی مشابه هستند

  • هر دو برای انتقال اطلاعات از کنترلر به ویو هستند.
  • هر دو مقدار خود را در Request جاری نگهدا ری می کنند و در صورت Redirect شدن مقادیر آنها null خواهد شد.

 

نکته : گرچه استفاده از هر ۲ گزینه تفاوت خاصی ندارد اما در اکثر سمپل های مایکروسافت از ViewData استفاده شده است.

 

 

ViewBag و Viewdata چیست

درباره سعید بحرانی فرد

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

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