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

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

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

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

最佳答案

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

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

检出将数据添加到历史哈希的AddHistoryPoint方法,并检查此blog post的用法。

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

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

10-05 19:51