asp.net ScriptManager EnableHistory = "true" InvalidOperationException - PullRequest
3 голосов
/ 07 июля 2011

Я управляю историей браузера ajax, используя asp.net (v. 4.0) EnableHistory="true" из ScriptManager и до сегодняшнего дня все работало нормально.Сегодня я запускаю свой браузер с локального хоста и получаю это сообщение об ошибке в IE 9 (только IE)

Сообщение: Sys.InvalidOperationException: чтобы функция истории работала в IE, страница должна иметь iFrameэлемент с идентификатором '__historyFrame' указывает на страницу, которая получает свой заголовок из параметра строки запроса 'title' и вызывает Sys.Application._onIFrameLoad () в родительском окне.Это можно сделать, установив для параметра EnableHistory значение true в ScriptManager.

Я отменил все изменения, которые я сделал сегодня, очистил кэш браузера, файлы cookie + историю + все и удалил «Временные файлы ASP.NET»из папок Windows и Temp, но эта ошибка не исчезнет.Удаление <meta http-equiv="X-UA-Compatible" content="IE=7" /> с моей главной страницы, однако, избавляет от ошибки, но это не вариант, так как многие стили не работают.Мета была там с самого начала, и все работало, так что мой вопрос: почему сейчас?

Любые указатели для дальнейшего сброса моего окружения (например, удаление некоторых скрытых файлов) или некоторый свет в том, что может происходить, будутполезно.Thanx.

1 Ответ

2 голосов
/ 07 июля 2011

ScriptManager выводит iframe для корректной работы управления историей в IE7. В этом случае, к сожалению, есть ошибка. Ваш браузер IE9, поэтому он показывает, что вам не нужен iframe. Но ваш метатег заставляет клиентскую сторону вести себя как IE7, поэтому ему нужен iframe. Это будет исправлено в следующей версии .NET. До этого вы сможете обойти эту проблему, посмотрев содержимое iframe, отображаемое при использовании режима Compat или фактического IE7, и имитируя это на своей странице. Но вам нужно убедиться, что он не попадет на страницу дважды, когда это действительно IE7, поэтому выводите его, только если вы обнаружите IE> = 8. Надеюсь, это имеет смысл? :)

...