2

私はasp.netの使用AJAXブラウザの履歴を管理する(Vを。4.0)EnableHistory="true" &のScriptManagerのすべてが今日までうまく働いています。 がSys.InvalidOperationException: 履歴機能はIEで動作するためには、 ページを持っている必要があります asp.netのScriptManager EnableHistory = "真" InvalidOperationExceptionが

がMessage(IEのみ)私はローカルホストからの私のブラウザ今日を発射し、私はIE 9で、このエラーメッセージが表示されます IDを持つiFrame要素 'title' クエリ文字列パラメータからそのタイトルを取得し、 親ウィンドウの Sys.Application._onIFrameLoad()を呼び出しているID「__historyFrame」が のページを指しています。これは、 ScriptManagerでEnableHistoryをtrueに設定することで実行できます。

今日私が行ったすべての変更を元に戻し、ブラウザキャッシュ+ Cookie +履歴+すべてをクリアし、WindowsとTempフォルダの両方から "Temporary ASP.NET Files"を削除しましたが、このエラーは消えません。 <meta http-equiv="X-UA-Compatible" content="IE=7" />を私のマスターページから削除すると、エラーを取り除きますが、多くのスタイリングが間違ってしまうのでオプションではありません。メタは当初から存在していて、すべてが機能していたので、今私の質問はなぜですか?

自分の環境をさらにリセットするためのポインタ(隠しファイルの削除など)や、何が起こっているのかについての参考になるものは参考になります。 Thanx。

答えて

2

ScriptManagerはiframeを出力し、IE7で履歴管理が正しく機能するようにします。この場合、残念ながらバグがあります。あなたのブラウザはIE9なので、iframeは必要ありません。しかし、あなたのメタタグはクライアントサイドをIE7として動作させるので、iframeが必要です。これは.NETの次のレビで修正される予定です。それまでは、互換モード、または実際のIE7を使用しているときに表示されるiframeコンテンツを見て、あなたのページでそれを模倣することで、この問題を回避することができます。しかし、実際にIE7のときに2ページ目に終わらないようにする必要があるので、IE> = 8が検出された場合にのみ出力してください。 :)

+0

これは意味がありますが、なぜそれが今までに働いていて、現在は仕事を拒否しているのですか?メタタグはいつもそこにありました。私はIE9に乗っていました。 – adentum

+2

おそらく、エラーはデバッグモードでしか投げられないからです。それはリリースモードで動作しますか? – InfinitiesLoop

+0

_web.config_ファイルの_system.web/compilation_セクションで 'debug =" true "'を削除する(またはfalseに設定する)と、問題は解決します。ご協力いただきありがとうございます。 – adentum

関連する問題