Код внутри "a.aspx" в основном выглядит так:
...
<iframe id="b.aspx" frameborder="0" scrolling="no" src=""></iframe>
...
В iframe есть пустой SRC и runat = "server", а в выделенном коде (C #) мы делаем что-то вроде этого:
idOfIFrame.Attributes["src"] = "..."
Проблема в том, что нет iframe. В исходном коде представления ясно видно, что у нас есть "действительный" URL-адрес src, добавленный выделенным кодом. Но страница, на которой находится iframe, пуста.
Он работал нормально месяцами / годами. Пока пользователь не обновил IE11.
У меня был IE 11.0.9600.18097 11.0.25 (KB3100773), а у пользователя IE 11.0.9600.18314 11.0.31 (KB3154070). Похоже, это может быть причиной проблемы, потому что я обновился и теперь могу воспроизвести отсутствующий iframe на моей машине разработчика.
Мне потребовалось время, чтобы немного поиграть с URL-адресом, и я открыл внутренний небольшой iframe в новой вкладке браузера. Нажмите Enter, все еще пусто. Там, где у меня должен быть код, ничего нет.
У меня это в файле aspx:
<div>
<asp:GridView>
<Columns>
<asp:TemplateField>
<itemtemplate>
<table>
...
В старой версии IE это отображалось как:
<div>
<div>
<table></table>
</div>
</div>
В новой версии IE он отображается как:
<div>
<div>
</div>
</div>
Есть идеи, в чем может быть проблема? Я могу одновременно открыть одну и ту же страницу на 2 компьютерах (все те же настройки совместимости и все такое), а другая работает, а моя - нет.
[ОБНОВИТЬ]
Я обнаружил, что это проблема с URL. Я создаю URL-адрес на C # следующим образом:
ifr.Attributes["src"] = "../../xyz.aspx?Module=ToDo&Allow=0&isOk=" + isOk
Источник просмотра показывает это:
"../../xyz.aspx?Module=ToDo&Allow=0&isOk=" + isOk
Похоже, эта версия IE больше не распознает &
в URL-адресах. Честно говоря, я считаю, что это ошибка MS IE 11. Моя переменная по умолчанию равна нулю, а не идентификатору, который является параметром URL QueryStringParameter.