一.可以通过使用ViewData对象和Viewbag对象从控制器传递值到和操作方法名称相同的名称的试图文件 ,两个的使用语法类似,具体语法请看下面举例
//使用ViewData对象从控制器传递文本数据到试图文件
ViewData["Message"] = "使用ViewData对象传递文本数据";
//在相应的试图文件通过以下语法调用从控制器传递过来的值
<h2>@ViewData["Message"]</h2>
//使用ViewBag对象从控制器传递文本数据到试图文件
ViewBag.Message2 = "使用ViewBag对象传递文本数据";
//在相应的试图文件通过以下语法调用从控制器传递过来的值
<h2>@ViewBag.Message2</h2>
"@"符号是Razor语法额关键词,当在试图文件中输入“@”时,Visual Studio会知道这段代码是在编写Razor语法。
二.ViewData对象和ViewBag对象只能将值传递给控制器中 与操作方法相同名称的试图文件,而想要将值传递给与控制器 操作方法不同名的试图文件中,就需要使用到 TempData对象,这个对象使用方式和ViewData对象一摸一样,只是传递的边界线有所不同
//使用TempData从控制器传递文本数据到试图
TempData["Message"] = "使用TempData对象传递文本数据";
//在试图文件通过以下语法调用从控制器传递过来的值
<h2>@TempData["Message"]</h2>
三.总结笔记
★★★(1.)ViewData对象是字典类型,存放的是键值对数据,存取时需要显示转换。
★ (2.)ViewBag对象是dynamic动态化的静态类型
★★★ (3.)ViewBag对象的属性和ViewData对象的键用的是栈中同一块存储空间,所以可以相互访问数据,两者的生命周期只在当前的操作方法中
★★★(4.)TempData对象数据保存在Session中,它虽然可以跨操作方法传值,但是它的生命周期只有一次,使用一次就会清空