سه شنبه , آذر ۲۱ ۱۴۰۲

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 چیست

 

آموزش Asp.net core 2 در قالب پیاده سازی سایت خبری مشابه ۹۰

3 نظر ثبت شده است.

  1. سلام دوست عزیز.ViewBag یک پراپرتی از کلاس کنترولر هست و در تمامی کلاس هایی که از کنترولر ارث بری داشتن قابل دسترسی هست و در معماری MVC بدلیل وجود کنترولر ها میشه از اونها استفاده کرد،پس میشه در وب و حتی پروژه های غیر تحت وب مثل winform و WPF از این معماری و طبیعتا ViewBag استفاده کرد!

  2. با سلام استاد از این گزینه ها میشه در برنامه نویسی ویندوزی هم استفاده نمود در winform یا wpf ???

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

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