ViewData,ViewBag,TempData

原文:ViewData,ViewBag,TempData

 

ViewData

ViewData 对象大家应该比较了解了,它是一种字典集合数据,可存放任意类型,所以,使用时需要强制类转换。

ViewData 是“视图基类”和“控制器基类”的属性,所以,在控制器和视图中可以直接使用。我们通常是在控制器中写入数据,在视图中读取数据。

ViewBag

ViewBag 对象是 dynamic 类型的对象,同样也是“视图基类”和“控制器基类”的属性。使用更灵活方便。

特点:ViewBag 其实是对 ViewData 数据的包装,使用 ViewData 保存的数据可使用 ViewBag 读取,反之亦然。实际开发中最好选择其中的一种使用,建议使用 ViewBag。具体使用如下:

 

ViewData,ViewBag,TempData

 

跨请求数据传递 TempData

TempData 是一种字典对象,也能用于从“控制器到视图”的数据传递,和 ViewData 类似。

TempData 还能实现“不同请求之间”的数据传递。使用如下:

ViewData,ViewBag,TempData

注意的问题:TempData 数据保存机制是 Session,但又不完全同 Session。

情况 1:TempData 保存数据后,如果被使用,就会被清除,因此后面的请求将不能再次使用。

情况 2: TempData 保存数据后,如果没有被使用,则它保存的时间是 Session 的生存期。

控制器和视图数据传递总结

ViewData,ViewBag,TempData

 

上一篇:Asp.net mvc基础(二)Controller给View传递数据的方式


下一篇:ASP.NET Core MVC入门——2