ViewState存储在哪里?

smi*_*ilu 6 asp.net viewstate

ViewState存储在哪里?它存储在服务器端还是客户端?

我有一个巨大的数据应该存储在一些进程中.我正在使用Session.但是当从一个页面移动到另一个页面时我无法清除会话.所以我想到了实现ViewState.但是当运行大量数据时,ViewState会抛出错误?

我该如何解决这个问题?

Rom*_*ain 9

Viewstate以编码形式存储在页面上.您无法以直接方式访问客户端中的视图状态.您需要知道编码/解码算法,以便从客户端代码中的此视图状态中获取有价值的数据.

您可以使用隐藏变量来存储仅在该页面上使用的数据.可以从客户端和服务器端代码访问隐藏变量.

您可以使用Cache或session来存储数据表(大数据).与ViewState相比,它们具有良好的性能.

Cache始终使用机器的内存,Session使用已配置的内容:

在Web场中,Session可以是本地的(仅在设置了关联性时才起作用)或远程(状态服务器或数据库或自定义),但缓存始终是本地的.

因此,在缓存中存储DataTable将消耗内存,但不会使用序列化.

PS:存储DataSet而不是DataTable几乎不会改变任何东西.

请参阅缓存实施


Guf*_*ffa 7

ViewState不存储在任何一方,它在每个请求和响应上在服务器和浏览器之间来回发送,因此在ViewState中放入大量数据不是一个好主意.