ViewBag و Viewdata چیست
Viewbag چیست
برای انتقال اطلاعات بین درخواست های مختلف یا Request ها در Asp.net core می توان از ViewBag استفاده کرد. شما با استفاده از دستور ViewBag می توانید اطلاعات را به صورت dynamic بین کنترلر و ویو جابجا کنید. در ادامه با مقاله ViewBag و Viewdata چیست از وب سایت Aspcore.ir در خدمت شما هستیم.
برای استفاده از یک ViewBag کافیست به صورت زیر عمل کنید :
در مثال بالا در اکشن متد Index یک ViewBag را تعریف کرده ایم.
بعد از کلمه ViewBag یک نقطه و پس از آن یک نام دلخواه را قرار می دهیم. حال به راحتی می توان در ویوی Index به مقدار این ViewBag دسترسی داشت.
تا اینجای کار متوجه شدید که ViewBag چیست و چگونه از آن استفاده می شود.
ViewData چیست
در Asp.net Core گزینه ای دیگر هم برای انتقال اطلاعات بین کنترلر و ویو وجود دارد که ViewData نامیده می شود.
کاربر ViewData هم مشابه با viewBag می باشد. برای استفاده از یک ViewData کافیست به صورت زیر عمل کرد.
همان طور که ملاحظه می فرمایید هر viewData یک کلید (در مثال ما Name) از نوع رشته دارد که توسط این کلید می توان به آن مقداردهی کرد یا مقدار آن را دریافت کرد.
دریافت مقادیر viewBag و ViewData در View
پس از اینکه اطلاعاتی را توسط ViewBag و یا ViewData در کنترلر ارسال کردیم می توان به راحتی و در هر کجای ویو مانند زیر مقادیر ان را دریافت کرد.
تفاوت های ViewBag و ViewData چیست
- تفاوت اول اینکه ViewData یک Dictionary Object می باشد و توسط یک کلید از نوع رشته مقداردهی می شود و یا مقدار آن دریافت می شود.
- viewBag یک خاصیت داینامیک می باشد و می توان توسط آن داده های ساده و غیرساده (مانند لیست ها و آرایه ها و یا رشته های جیسون) را ارسال کرد. ViewBag از سی شارپ نسخه ۴ وجود داشته است. دقت نمایید که توسط ViewData هم داده های غیرساده قابل ارسال است. اما مکانیزم ارسال متفاوت است.
- سرعت انتقال اطلاعات در viewData سریعتر می باشد.
ViewBag و ViewData در چه چیزی مشابه هستند
- هر دو برای انتقال اطلاعات از کنترلر به ویو هستند.
- هر دو مقدار خود را در Request جاری نگهدا ری می کنند و در صورت Redirect شدن مقادیر آنها null خواهد شد.
نکته : گرچه استفاده از هر ۲ گزینه تفاوت خاصی ندارد اما در اکثر سمپل های مایکروسافت از ViewData استفاده شده است.
ViewBag و Viewdata چیست
با سلام استاد از این گزینه ها میشه در برنامه نویسی ویندوزی هم استفاده نمود در winform یا wpf ???
سلام
خیر این موارد مربوط به وب هست
برای ویندوز موارد دیگه ای وجود داره