首先,他们都是View和Action之间前后台数据传递的几种方式,外加几种补全知识点:
ViewData[""] --弱类型
ViewBag --动态型 //dynamic
Model --动态类型
TempData[""]--临时存储
return View(data); --后台 //存入ViewData.Model
WebViewPage.Model --前台
下面只对TempData,ViewData,ViewBag之间的区别进行比较
类型:ViewData为object型,需要根据输出类型我们自己去转换;ViewBag为dynamic型,可自动根据数据类型转换。
结构:ViewData为典型的字典型(Dictionary)即键值对结构,ViewBag则为动态型,子程序运行的时候进行动态的解析。
执行速度:ViewData比ViewBag的速度快,因为ViewBag源于ViewData,只是内部比ViewData多了一层Dynamic控制。
值的处理:ViewData和ViewBag值只对当前的View有用,TempData可在不同的action之间传递。
生命周期:ViewData和ViewBag的生命周期取决于View,TempData的值在使用了一次后会自动删除