【Asp.net】MVC中ViewData、ViewBag和TempData的区别与实例

本文对比了ViewData、ViewBag和TempData在ASP.NET MVC中关于生命周期、访问次数和数据传递方式的区别,并通过实例演示了它们的使用。ViewData适用于当前Action,ViewBag类似Session但限制更多,TempData则类似Session但元素仅限一次传递。
摘要由CSDN通过智能技术生成

一、区别与特性

名称生命周期访问次数格式
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):

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敦厚的曹操

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值