2

我使用asp.net的管理AJAX瀏覽器歷史記錄(4.0版)的的ScriptManager &一切EnableHistory="true"一直很好,直到今天。 我火我今天從本地主機的瀏覽器,我在IE 9得到這個錯誤信息(僅IE)asp.net的ScriptManager EnableHistory = 「真」 InvalidOperationException異常

消息: Sys.InvalidOperationException:對於 歷史記錄功能在IE工作, 頁必須有帶有 id'__historyFrame'的iFrame元素指向頁面 ,該頁面從「標題」 查詢字符串參數獲取標題,並在 父窗口中調用 Sys.Application._onIFrameLoad()。這可以通過 設置EnableHistory爲true,在 ScriptManager上完成。

我已經取消了今天所做的所有修改,清除了我的瀏覽器緩存+ cookies +歷史記錄+所有內容,並從Windows和Temp文件夾中刪除了「臨時ASP.NET文件」,但此錯誤不會消失。 從我的母版頁刪除<meta http-equiv="X-UA-Compatible" content="IE=7" />然而擺脫了錯誤,但它不是一個選項,因爲很多樣式出錯。元一直從那裏開始,一切都運行了,所以我的問題是爲什麼現在?

任何指向進一步重置我的環境(例如刪除一些隱藏文件)或一些光進入可能發生的事情將是有益的。 Thanx。

回答

2

ScriptManager輸出一個iframe以使歷史管理在IE7中正常工作。在這種情況下,不幸的是,有一個錯誤。你的瀏覽器是IE9,所以它認爲你不需要iframe。但是你的meta標籤使得客戶端的行爲與IE7相同,所以它確實需要iframe。它將在下一版.NET中得到修復。在此之前,您應該能夠通過查看在使用compat模式或實際的IE7時呈現的iframe內容並在頁面中模擬該內容來解決該問題。但是你需要確保它不會在頁面中出現兩次,當它確實是IE7的時候,所以只有當你檢測到IE> = 8時才輸出它。理解,我希望? :)

+0

有道理,但它爲什麼一直工作,只是拒絕現在的工作?元標記一直在那裏,當我在幾周前實現該功能時,我一直在IE9上。 – adentum

+2

哦,可能是因爲錯誤只是在調試模式下拋出。它是否在發佈模式下工作? – InfinitiesLoop

+0

在_web.config_文件的_system.web/compilation_部分中刪除'debug =「true」'(或將其設置爲false)可解決該問題。謝謝你的幫助。 – adentum

相關問題