天天看点

MVC中从控制器到视图的数据传递方法汇总

1、ViewData对象

概述

ViewData是一种字典集合数据,是"视图基类"和"控制器基类"的属性

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

ViewData的Value可以存放任意数据类型的数据,因此使用时需要强制转换

MVC中从控制器到视图的数据传递方法汇总

2、动态对象ViewBag

概述

理解:ViewBag是dynamic类型的对象,同样也是"视图基类"和"控制器基类"的属性

好处:使用更灵活方便

特点:ViewBag其实是对ViewData数据的包装,使用ViewData保存的数据可使用ViewBag读取,反之亦然

应用:实际开发中最好选择其中的一种使用,建议使用ViewBag

MVC中从控制器到视图的数据传递方法汇总

3、跨请求数据传递TempData

概述

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

特性:TempData还能实现"不同请求之间"的数据传递

MVC中从控制器到视图的数据传递方法汇总

注意问题:

TempData数据保存机制是Session,但又不完全同Session

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

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

几种传递方式的比较

MVC中从控制器到视图的数据传递方法汇总

继续阅读