一、区别与特性
名称 | 生命周期 | 访问次数 | 格式 |
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):