ViewState

milizi820 2008-04-13 09:54:01
转载链接
http://www.cnblogs.com/wdxinren/archive/2006/09/30/518952.html
还有原文的链接
http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx


ViewState是一种非常容易让人误解的动物。我想尝试 从头到尾,从各种不同的用例,比如说declared controls vs. dynamic controls,解释清楚ViewState的工作机制,反而更是一团糟。

已经有许多好文章试图解开ViewState的神秘面纱。你可能会认为这就像打一只死马(美国口语:重提早已解决了的问题)(这里的ViewState是那只死马,internet是打死马的人)但是我要告诉你,这只马并不是死的。它其实它是十分活力的,你看,还在你的卧室惊跑呢,我们需要再一次把它击倒。别担心,写这篇文章的时候没有马会受伤.

其实外界并不缺乏关于ViewState的好资料,只是他们似乎都缺了一些东西,造成了整个社区对ViewState感到困惑。比如说,其中一个关键特性就是,理解ViewState怎么tracks dirtiness是很重要的。然而,这里有一篇很好的深入的关于ViewState的文章(简要说明posted form values使用viewstate来维护),但这是不正确的。(不信?Disable他们那个例子上的textbox的ViewState,再运行一次)。这是关于"ASP.NET ViewState"的#1 Google Search Result。这是ASP.NET在MSDN的文档,解释了Controls怎么通过postbacks维护ViewState.这个文档每一句话都没错,当时他得出的一个statement并不完全正确:

“如果一个控件使用ViewState属性值来代替私有字段,这个属性会持久化性的往返于客户端和服务器。”

这好像是在说,任何扔给ViewState状态包,都会往返于客户浏览器。其实这不是真的!如果是这样,对ViewState有困惑真是一点也不奇怪了。我在internet真找不出能100%完全正确解释Viewstate是怎么工作的文章。我曾经找到最好的一篇是由Scott Mitchell写的。这篇很值得阅读。然而,这文章并没有解释控件和他们子控件在初始化和ViewState Tracking时的关系,而这正是造成大量误用ViewState的关键所在,至少在我的经验中是这样的。
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ming4098 2008-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zw19830120 的回复:]
原来小金子在这里玩
[/Quote]
雅彦 2008-04-14
  • 打赏
  • 举报
回复
原来小金子在这里玩
jhbseawater 2008-04-13
  • 打赏
  • 举报
回复
学习,不懂```

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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