ASP.NET MVC中TempData、ViewData和ViewBag的区别

1、TempData、ViewData和ViewBag的区别

ViewData是字典型的(Dictionary),ViewBag不再是字典的键值对结构,而是dynamic(动态)型,会在程序运行的时候动态解析。ViewData为object型,而ViewBag为dynamic型。dynamic型与object型的区别是在使用时它会自动根据数据类型转换,而object型则需要我们自己去强行转换。

ViewBag其实就是ViewData,只是多了一层Dynamic控制,可以说它是另一种访问ViewData的方式。理论上ViewBag要比ViewData慢一点点,但是几乎可以忽略,所以使用何种方式完全取决于个人的爱好。

TempData的使用同ViewData和ViewBag一样,TempData也可以用来向视同传递数据,只是ViewData和ViewBag的生命周期和View相同,它们只对当前的View有用。TempData则可以在不同的Action中进行传递,类似Webform里的Session。有一点需要注意,TempData的值在取了一次后会自动删除。TempData用来在一次请求中同时执行多个Action方法之间共享数据。

 

2、TempData、ViewData和ViewBag的使用

控制器代码:

public ActionResult Index()
{
    ViewData["One"] = "张三";
    ViewBag.Two = "李四";
    TempData["Three"] = "王五";
    return View();
}

页面代码:

@{
    Layout = null;
    ViewBag.Title = "Index";
}

<h2>员工排名</h2>
<p>第一名:@ViewData["One"]</p>
<p>第二名:@ViewBag.Two</p>
<p>第三名:@TempData["Three"]</p>

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

pan_junbiao

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

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

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

打赏作者

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

抵扣说明:

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

余额充值