MVC详细介绍(二)

数据传递

ViewData对象

  1. ViewData是一种字典集合数据,是“视图基类”和“控制器基类”的属性
  2. 常见的用法是在控制器中写入数据,在视图中读取数据
  3. ViewData的value可以存放任意数据类型的数据,因此使用时需要强制转换

ViewBag对象

  1. ViewBag是dynamic类型的对象,同样也是“视图基类”和“控制器基类”的属性
  2. 好处:使用灵活方便
  3. 特点:ViewBag其实是对ViewData数据的包装,使用ViewData保存数据可以使用ViewBag读取,反之也是如此
  4. 实际开发中最好选择其中一种使用,建议使用ViewBag

TempData对象

  1. TempData是一种字典对象,也能用于从“控制器到视图的数据传递”,和ViewData类似
  2. TempData还能实现“不同请求之间”的数据传递,跨请求数据传递
  3. TempData保存数据的机制是Session,但又不完全和Session相同
  4. TempData保存数据后,如果被使用,就会被清除,因此后面的请求将不能再次使用
  5. TempData保存数据后,如果没有被使用,则他保存的时间是Session的生命周期

常用数据传递

传递方式 应用场合 跨请求
ViewData 适合传递单个数据,需要类型转换 不能
ViewBag 适合传递单个数据,不需要类型转换 不能
TempData 主要用来跨多个动作方法传递数据
View()+Model 适合传递模型数据,不需要类型转换

你可能感兴趣的:(C#,MVC)