根据MSDN documentation,ScriptManager.GetStateString()
“检索一个字符串,该字符串包含表示网页状态的键/值对。”
当我调用该方法时,它返回似乎是哈希字符串的字符串-如何将其解析为有用的东西? GetStateString
方法究竟返回什么?
编辑:
我注意到,如果我在页面上提交表单或将数据追加到查询字符串,则GetStateString
返回的值不会更改。 “页面状态”显然不包括这种状态数据吗?
更新:设置ScriptManager.EnableSecureHistoryState = false
时,哈希值将替换为空字符串。显然,如果EnableSecureHistoryState = true,则GetStateString返回的值将被加密并散列。
最佳答案
GetStateString()
从历史记录哈希中返回状态。
历史记录哈希是您在Ajax应用程序中启用浏览器后退/前进按钮的答案。它记录您的输入,以便您可以前进和后退。
检出将数据添加到历史哈希的AddHistoryPoint方法,并检查此blog post的用法。ScriptManager.EnableSecureHistoryState = true
时得到哈希响应的原因是历史状态哈希表为空,但不为NULL。它是一个仍可以序列化和加密的对象。
如果状态哈希为NULL或为空,则将返回一个空字符串,我怀疑这是您的情况。您尚未添加历史记录点。