一、区别与特性

名称

生命周期

访问次数

格式

ViewData

当前Action页面有效

可多次被访问

ViewData["myName"] = "您好";

ViewBag

当前Action页面有效

可多次被访问

ViewBag.Message =“您好!”

TempData

类似Seesion,服务器端

只能经过一次Controller传递,并且每个元素至多只能被访问一次,访问以后,自动被删除

TempData["myAgeOne"] = "您好“;







二、 ViewData实例

1、标准实例

后台赋值(CS):ViewData["myName"] = "您好";

前台调用(cshtml):<h1>@ViewData["myName"]</h1>

后台赋值(CS):

List<string> students = new List<string>();
students.Add("张飞");
students.Add("关羽");
students.Add("刘备");
ViewData["school"] = students;

ViewData["dateNow"] = DateTime.Now;
ViewData["name"] = "三国大学";

return View();

前台调用(cshtml):

<h1>@ViewData["dateNow"]</h1>
<h1>@ViewData["name"]</h1>
@foreach (var student in ViewData["school"] as List<string>)
{
<h2> @student</h2>
}

三、 ViewBag实例

1、标准实例

后台赋值(CS):ViewBag.Message = "您好";

前台调用(cshtml):<h3>@ViewBag.Message</h3>

2、<list>数据集合实例

后台赋值(CS):

List<string> students = new List<string>();
students.Add("张飞");
students.Add("关羽");
students.Add("刘备");
ViewBag.school = students;

ViewBag.dateNow = DateTime.Now;
ViewBag.name = "三国大学";

return View();

前台调用(cshtml):

<h1>@ViewBag.dateNow</h1>
<h1>@ViewBag.name</h1>
@foreach (var student in ViewBag.school as List<string>)
{
<h2> @student</h2>
}


四、 TempData实例

1、标准实例

后台赋值(CS):ViewBag.Message = "您好";

前台调用(cshtml):<h3>@ViewBag.Message</h3>

2、<list>数据集合实例

后台赋值(CS):


前台调用(cshtml):