ViewData、ViewBag和TempData

控制器和视图之间数据传值,比较常用的,除了Session,还有ViewData、ViewBag和TempData等,通常都是在控制器中写入值然后在视图中读取值

	 public ActionResult Index()
        {
            /*一:ViewData和ViewBag只能在对应的视图和控制器之间传值,比如这里只能在Index视图读取
             *   在Second视图就读取不了
             *二:TempData可以跨视图取值
             * 
            */
            /*1:ViewData
             *  字典集合数据,可以存放任意类型的数据,使用时强制类型转换
             *2:ViewBag
             *  dynamic类型数据
             *3:TempData
             *  字典集合数据
             */
            //注意写法
            //在Index视图读取
            ViewData["test"] = "testViewData";//测试ViewData的使用
            ViewBag.data = "testViewBag";
            //在Second视图读取(注意需要跳转到Second视图才可以)
            TempData["test"] = "testTempData";

            
            return View();
            //return Redirect("Second");
        }

然后在对应视图里(Razor的C#语法)这样写

 @ViewData["test"];&nbsp;@ViewBag.data;&nbsp;@ViewData["data"];<br />
        @TempData["test"];

测试看一下
在这里插入图片描述
其实,ViewBag是对ViewData的包装,ViewData的数据可以用ViewBag读取,反之亦然,实际项目中选择其中的一种,推荐使用ViewBag。
现在将Index里的返回View改为Redirect(“Second”);
结果:
在这里插入图片描述
结果只有TempData才可以传值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值