从控制器到视图的数据传递

一、ViewData

1、ViewData是一种字典集合数据(即键值对类型),是“视图基类”和“控制器基类”的属性

2、常见用法是在控制器中写入数据,在视图中读取数据

3、ViewData的values可以存放任意数据类型的数据,因此使用时需要强制类型转换从控制器到视图的数据传递

从控制器到视图的数据传递

二、ViewBag动态对象

1、ViewBag是dynamic类型对象,同样也是“视图基类”和“控制器基类”的属性

2、ViewBag使用更加灵活方便(可以直接使用,编写的时候不会进行错误检查,但是运行的时候没有就会报错)

3、ViewBag其实是对ViewData数据的一个包装,使用ViewData包装的数据可以使用ViewBag进行读取,反之亦然。实际开发过程中建议使用ViewBag

从控制器到视图的数据传递

从控制器到视图的数据传递

三、跨请求数据传递TempData

1、TempData的一种字典对象,也能用于控制器到视图的数据传递

2、TempData可以实现跨请求的数据传递

从控制器到视图的数据传递从控制器到视图的数据传递

return RedirectToAction("action","controller")

3、TempData的保存机制和session但又不完全同于session

(1)、TempData中的数据一旦被使用就会被清除

(2)、TempData中的数据