具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从 ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。 TempData 一般用于临时的缓存内容或抛出错误页面时传递错误信息(例如Edit页面Save操作
除了使用 TempData[""] 对 TempData 进行定义外,还可以使用对属性使用 [TempData] 修饰对 TempData 进行定义。 1publicIActionResult TempDataTest()2{3TempData["error"] ="An error";4TempData["greeting"] ="Hello";56//将 TempData["error"] 生存期延长一次7TempData.Keep("error");89returnView();10}1...
.NET/MVC-ViewBag、ViewData、TempData区别 1、ViewData ViewData的生命周期和View相同, 只对当前View有效。 2、TempData TempData保存在Session中, Controller每次执行请求的时候会从Session中获取TempData并删除Session。 获取完TempData数据后虽然保存在内部的字典对象中。 但是TempData集合的每个条目访问一次后就从字典表中...
发现ViewBag其实本质就是ViewData,只是多了层Dynamic控制。所以,使用何种方式完全取决于你个人的爱好 TempData的使用 同ViewData和ViewBag一样,TempData也可以用来向视图传递数据。只是ViewData和ViewBag的生命周期和View相同,只对当前View有用。而TempData则可以在不同的Action中进行传值,类似webform里的Seesion。如下: publ...
ViewBag是动态类型,从运行效率上来讲,ViewBag高于ViewData。在实际开发中,通不只用其中一种。使用方法:ViewBag.data="张三"TempData:跨请求数据传递,它的机制类似于Session对象,不同的页面之间可以传递参数,但TempData只保存上一次的数据,当页面再次刷新,数据消失。使用方法:TempData["myname"]="张三"
ViewBag 其实是对 ViewData 的封装, 其 内部其实是使用 ViewData 实现数据存储的。唯一的不同点是,ViewBag 可以存储动态类型(dynamic)的变量值, 而 ViewData 只能存储 String Key/ObjectValue 字典数组。 TempData & Session TempData 也是一个 String Key/Object Value 字典数组。和ViewData 与 ViewBag 不同的是...
另外,进行页面转向时,tempdata可以保持数据。它是一个内部的Session变量。 View data - 可以在控制器和...
无论是ViewBag还是ViewData,都仅仅对当前的请求有效,他们的生命周期很短,无法存在于多个请求中。 TempData的出现可以存在多个请求,但是,也被限制于当前请求和下一次请求(通常是Redirect)。它的内部实现是使用了Session。 public void Index(){ TempData["text"] = "123456"; ...
无论是ViewBag还是ViewData,都仅仅对当前的请求有效,他们的生命周期很短,无法存在于多个请求中。 TempData的出现可以存在多个请求,但是,也被限制于当前请求和下一次请求(通常是Redirect)。它的内部实现是使用了Session。 public void Index(){ TempData["text"] = "123456"; ...
控制器每次执行请求时都会从Session中获取TempData数据并删除该Session。TempData数据只能在控制器中传递一次...