asp.net mvc viewdata本质上是个什么东东?

jiezi316 2011-06-09 05:45:50
最近学习mvc, 我的理解controller 就是一个httphandler,view则为aspx页面

当我们请求一个路径时,通过url重写,被路由到了对应的httphandler上了。httphandler处理完后,再将页面重定向到某个asp页面上,aspx页面上用来显示处理结果。

我的问题是,如果我的理解是正确的话。那么httpHandler处理完后,转向到aspx页面显示结果的过程中,我想知道这个值是如何传递过去的。(mvc框架中是用viewdata等对象传递,但我认为这个不过是封装后的东西,我想知道本质的东西)

比如,我就用原始的httphandler和aspx页面如何实现mvc框架一样的传值?(用session倒是可以。呵呵,但我觉得应该不是这样的)

当然如果我理解错了,请大家也教教我
...全文
553 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
疯的世界 2012-11-17
  • 打赏
  • 举报
回复
如果当Viewdata里面的数据没用了,为了减少内存的使用,怎么把它销毁呢,
kingdom_0 2011-06-10
  • 打赏
  • 举报
回复
想了解底层,就得看源码 。
不訴離傷 2011-06-09
  • 打赏
  • 举报
回复
微软的MVC 09年开始就已经全部开源了,可以到官网下载源码回来自己研究。
不訴離傷 2011-06-09
  • 打赏
  • 举报
回复
MVC中的弱类型,主要有ViewData和TempData
实则上应该都是字典,用于键值对应关系,分别对应ViewDataDictionary以及TempDataDictionary。
ViewData只能在当前的HTTP请求中,不会像session一样可以把数据带到下一个HTTP请求。
TempData跟ViewData的区别是他是临时性的,例如取代一些viewstatus一样保存客户端的上一次数据。他的内部是通过session来保存的。只要被取用一次后就自动清除session。
种草德鲁伊 2011-06-09
  • 打赏
  • 举报
回复
就是用一个上下文对象嘛,跟httpcontext不是一样的嘛
子夜__ 2011-06-09
  • 打赏
  • 举报
回复
原理 可能要看底层代码了。。

有没有这方面的专家来解释下

mArK.
jiezi316 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xuexiaodong2009 的回复:]

ViewData的生命周期和View相同, 只对当前View有效.
TempData保存在Session中, Controller每次执行请求的时候会从Session中获取TempData并删除Session,
获取完TempData数据后虽然保存在内部的字典对象中,
但是TempData集合的每个条目访问一次后就从字典表中删除.
也就是说TempData的数据至多只能经过一……
[/Quote]
你这个不是相当于没说吗?你说的这些的我都知道。
xuexiaodong2009 2011-06-09
  • 打赏
  • 举报
回复
ViewData的生命周期和View相同, 只对当前View有效.
TempData保存在Session中, Controller每次执行请求的时候会从Session中获取TempData并删除Session,
获取完TempData数据后虽然保存在内部的字典对象中,
但是TempData集合的每个条目访问一次后就从字典表中删除.
也就是说TempData的数据至多只能经过一次Controller传递,
并且每个元素至多只能访问一次.

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧