Lessons in this course (10)

5. Passing data — ViewData, ViewBag, TempData, Session and strongly typed models

Intermediate★ Must knowLesson 5 of 10
MechanismTypeLifetimeTypical use
Strongly typed modelView(model) + @modelOne requestThe main data — IntelliSense, compile-time checks (preferred)
ViewDataViewDataDictionary (string keys)Current request, controller → viewSmall extras
ViewBagdynamic wrapper over ViewDataCurrent requestTitle, small extras (no compile-time checking)
TempDataDictionary backed by Session (default)Until read in a subsequent requestMessages after redirect (Post-Redirect-Get)
SessionSession["key"]User sessionCart, wizard state

TempData.Keep("key") keeps a value for another request; TempData.Peek("key") reads without marking it for deletion.