我使用 asp.net(v. 4.0)管理 ajax 浏览器历史记录 EnableHistory="true"
ScriptManager & 直到今天一切都运行良好。
我今天从本地主机启动我的浏览器,我在 IE 9(仅 IE)中收到此错误消息
Message: Sys.InvalidOperationException: For the history feature to work in IE, the page must have an iFrame element with id '__historyFrame' pointed to a page that gets its title from the 'title' query string parameter and calls Sys.Application._onIFrameLoad() on the parent window. This can be done by setting EnableHistory to true on ScriptManager.
我已经撤消了我今天所做的所有修改,清除了我的浏览器缓存+cookies+历史+一切,并从 Windows 和 Temp 文件夹中删除了“临时 ASP.NET 文件”,但这个错误不会消失。
删除 <meta http-equiv="X-UA-Compatible" content="IE=7" />
然而,从我的母版页中删除了错误,但它不是一个选项,因为很多样式都出错了。元数据从一开始就存在并且一切正常,所以我的问题是为什么是现在?
任何进一步重置我的环境(例如删除一些隐藏文件)或了解可能发生的事情的指示都会有所帮助。 谢谢。
最佳答案
ScriptManager 输出一个 iframe 使历史管理在 IE7 中正常工作。不幸的是,在这种情况下,存在一个错误。您的浏览器是 IE9,因此它认为您不需要 iframe。但是您的元标记使客户端的行为与 IE7 一样,因此它确实需要 iframe。它将在 .NET 的下一个版本中得到修复。在那之前,您应该能够通过查看在使用兼容模式或实际 IE7 时呈现的 iframe 内容并在您的页面中模仿它来解决该问题。但是当它真的是 IE7 时,你需要确保它不会在页面中出现两次,所以只有当你检测到 IE >= 8 时才输出它。我希望有道理吗? :)
关于asp.net ScriptManager 启用历史 ="true"InvalidOperationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6603904/