c# - 让 asp.net 在 session 中存储 View 状态而不是增加 html

标签 c# asp.net session viewstate

我试图让 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

谢谢!

最佳答案

您确定要这样做吗?有问题

  1. 如何将各个页面分开?当然,您可以在 session 状态名称前加上页面前缀,例如。 Session["/default.aspx-Viewstate"] 但是当用户打开一个页面的多个实例时会发生什么?
  2. 因此,为了解决这个问题,您在每个页面中放置了一个带有 GUID 的隐藏字段,然后将其用作键。所以你的 session 大小会增加。并成长。并成长。您如何知道是否/何时可以安全地移除东西?

如果您坚持阅读这篇文章,那么您需要做的就是从页面派生一个类并覆盖 LoadPageStateFromPersistenceMedium() 和 SavePageStateToPersistenceMedium()。但你会恨自己,最终会把它撕掉。

只需确保您的服务器启用了 HTTP 压缩,请担心其他事情。

关于c# - 让 asp.net 在 session 中存储 View 状态而不是增加 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4622000/

相关文章:

python - django session 检查是否存在

c# - Windows 服务中的 Ftp 请求超时

asp.net - Visual Studio Express 2012 Site.Master 中出现错误 "Scripts is not declared"

asp.net - 使用反射从 ASP.NET 模板代码隐藏类获取命名空间?

c# - 从 Html.TextBoxFor 获取值

javascript - Express JS session 存储实现 : TypeError: Object [object Object] has no method 'on'

Java 生成的 token 不是随机的——但它是什么?

c# - 请求新的访问 token 并重新提交 api 请求

c# - 二维标签不起作用

c# - WPF 在 MouseOver 上绘制边框