asp.net面试题总结1(未完待续。。。。)

1、MVC中的TempData\ViewBag\ViewData区别?

  答:页面对象传值,有这三种对象可以传。

  

  (1)  TempData  保存在Session中,Controller每次执行请求的时候,会从Session中先获取 TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删 除。具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTempData方法从 ControllerContext的Session中读取数据,而后清除Session,故TempData只能跨Controller传递一次。

 (2) ViewBag和ViewData只在当前Action中有效,等同于View

 (3)ViewData和ViewBag 中的值可以互相访问,因为ViewBag的实现中包含了ViewData

(未完待续。。。。)

猜你喜欢

转载自www.cnblogs.com/schangxiang/p/11279123.html