我如何使用ScriptManager.GetStateString()?

时间:2010-02-22 22:33:07

标签: c# asp.net scriptmanager

根据MSDN documentationScriptManager.GetStateString() “检索包含表示网页状态的键/值对的字符串。”

当我调用该方法时,它返回一个似乎是散列字符串的东西 - 如何将其解析为有用的东西? GetStateString方法究竟返回了什么?

修改 我注意到,如果我在页面上提交表单或将数据附加到查询字符串,则GetStateString返回的值不会更改。 “页面状态”显然不包括这种状态数据?

UPDATE:当我设置ScriptManager.EnableSecureHistoryState = false时,哈希值将替换为空字符串。显然,如果EnableSecureHistoryState = true,则GetStateString返回的值将被加密和散列。

1 个答案:

答案 0 :(得分:1)

GetStateString()从历史哈希中返回状态。

历史哈希是您在Ajax应用程序中启用浏览器后退/前进按钮的答案。它会记录您的输入,以便您可以前后移动。

查看用于将数据添加到历史记录哈希的AddHistoryPoint方法,并查看此blog post以获取示例用法。

ScriptManager.EnableSecureHistoryState = true时获得散列响应的原因是因为历史状态散列表为空,但不是NULL。它是一个仍然可以序列化和加密的对象。

如果状态哈希值为NULL或为空,则返回空字符串,我怀疑这是你的情况。您尚未添加历史记录点。