我试图让 asp.net 在 session 中存储 View 状态,而不是增加 html。
现在我读到 asp.net 附带了 SessionPageStatePersister,可以使用它代替默认的 HiddenFieldPageStatePersister 来执行此操作。我想知道如何将它放入?
到目前为止,这是我得到的: 我想我需要创建一个从其 GetStatePersister 方法返回 SessionPageStatePersister 的 PageAdapter,并以某种方式获取页面以使用此 pageadapter。但是 Page.PageAdapter 只有一个 getter,所以我不确定你是如何设置的。
请参阅此处的“备注”标题:http://msdn.microsoft.com/en-us/library/system.web.ui.hiddenfieldpagestatepersister.aspx
谢谢!
最佳答案
您确定要这样做吗?有问题
- 如何将各个页面分开?当然,您可以在 session 状态名称前加上页面前缀,例如。 Session["/default.aspx-Viewstate"] 但是当用户打开一个页面的多个实例时会发生什么?
- 因此,为了解决这个问题,您在每个页面中放置了一个带有 GUID 的隐藏字段,然后将其用作键。所以你的 session 大小会增加。并成长。并成长。您如何知道是否/何时可以安全地移除东西?
如果您坚持阅读这篇文章,那么您需要做的就是从页面派生一个类并覆盖 LoadPageStateFromPersistenceMedium() 和 SavePageStateToPersistenceMedium()。但你会恨自己,最终会把它撕掉。
只需确保您的服务器启用了 HTTP 压缩,请担心其他事情。
关于c# - 让 asp.net 在 session 中存储 View 状态而不是增加 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4622000/