สวัสดีครับ บทความนี้ผมจะมาเขียนเกี่ยวกับการใช้ ViewData, ViewBag และ TempData ทั้งการใช้งานและข้อแตกต่างแบบคร่าวๆ
ViewData ใช้สำหรับส่งข้อมูลจาก Controller ไปยัง View ค่าที่เก็บใน ViewData จะหายไปเมื่อมีการ Redirect ไปยัง Action อื่นๆ
Controller
View
ViewBag ใช้สำหรับส่งข้อมูลจาก Controller ไปยัง View เช่นเดียวกับ ViewData แต่จะสามารถใช้ได้กับ .Net Framework 4.0 ขึ้นไปและยังเป็น Dynamic property ของ ControllerBase class
Controller
View
TempData มีความแตกต่างจาก ViewData และ ViewBag สามารถส่งข้อมูลจาก Controller ไปยัง View และยังสามารถส่งข้อมูลจาก Action ไปยัง Action ได้ด้วย แต่ว่า TempData จะมีช่วงเวลาการเก็บข้อมูลที่สั้นมาก
Controller
View
Pass data from action to action.
Ref. - http://www.c-sharpcorner.com/Blogs/12427/viewdata-vs-viewbag-vs-tempdata-in-mvc.aspx
Ref. - http://www.dotnet-tricks.com/Tutorial/mvc/9KHW190712-ViewData-vs-ViewBag-vs-TempData-vs-Session.html
Ref. - http://www.codeproject.com/Articles/476967/WhatplusisplusViewData-2cplusViewBagplusandplusTem