ما هو الفرق بين ViewBag و ال ViewData
من أجل تمرير البيانات من الكنترولر للعرض في subsequent request التالي ،و يوفر فريم ASP.NET MVC خيارات مختلفة منها :
1- عرض البيانات (ViewData)
2- حقيبة عرض (ViewBag)
3- TempData
تستخدم ViewBag و ViewData للتواصل بين controller وcorresponding view . ولكن هذا الاتصال هو فقط لمكالمة السيرفر ، فإنه يصبح لاغيا إذا حدث إعادة توجيه. باختصار ، فإنه آلية للحفاظ على الحالة بين controller وال corresponding view.
ViewData هو dictionary object بينما ViewBag هي خاصية ديناميكية (ميزة C # 4.0 جديدة). يمكن الوصول إلى DisplayView كونه dictionary object باستخدام strings كمفاتيح ويتطلب أيضًا typecasting للأنواع المعقدة. من جهة إخرى ، لا يحتوي تطبيق ViewBag على typecasting وعمليات فحص فارغة.
TempData هو أيضا dictionary object الذي يبقى لوقت طلب HTTP. لذلك ، يمكن استخدام Tempdata للحفاظ على البيانات بين عمليات إعادة التوجيه ، أي من controller إلى controller أخر .
بالعامية :
١- نفس الشيء لكن طريقة الاستدعاء تختلف بينهما
٢- أحدهما key value pairs و الأخرى dynamic object properties
وحدة بتخزن فيها key value و الثانية object يعني ال data المعقدة اكثر منkey value وفيtemp data هاي مؤقتة بتعيش و بتموت مع ال request منيحة ل نقل ال data من controller ل controller