mvc 学习笔记

Model模块层,处理数据库信息。

在这个过程中出现一个问题就是View 和Model数据通过谁传递,怎么传递?

在.net mvc中增加了两个数据类型,ViewData 和TempData

虽然ViewData和TempData都可以传递弱类型数据,但是两者的使用是有区别的:

ViewData的生命周期和View相同, 只对当前View有效.

TempData保存在Session中, Controller每次执行请求的时候会从Session中获取TempData并删除

Session, 获取完TempData数据后虽然保存在内部的字典对象中,但是TempData集合的每个条目访问一次后就从字典表中删除. 

也就是说TempData的数据至多只能经过一次Controller传递.

为何TempData只能够在Controll中传递一次? 因为SessionStateTempDataProvider.LoadTempData方法(在TempDataDictionary.Load中调用)在从ControllerContext的Session中读取了TempData数据后, 会清空Session:

posted @ 2012-11-29 16:14  Eric.Z  阅读(183)  评论(0编辑  收藏  举报