Page_Load вызывается в Firefox, но не в IE - PullRequest
3 голосов
/ 14 января 2009

Я был брошен в проект ASP.NET, и у меня есть страница, которая содержит элемент управления, который выбирается через AJAX.

Функция Page_Load элемента управления выполняет небольшую логику, необходимую для получения правильных значений из строки запроса.

Проблема в том, что функция Page_Load не вызывается в IE.

Если я установлю точку останова, я могу загрузить страницу в FF и посмотреть, как она останавливается, но в IE: нет сделки.

Я довольно (читай: ПОЛНОСТЬЮ) новичок в ASP.NET, но я довольно опытный разработчик PHP. Так что я думаю, что это, наверное, какой-то фанат в том, как IE выполняет обратный вызов AJAX для получения контроля.

У кого-нибудь есть идеи?

Приветствия

Ответы [ 6 ]

5 голосов
/ 15 января 2009

Кажется, это была проблема с кэшированием, решаемая следующим образом:

protected override void OnLoad(EventArgs e)
{
    Response.Cache.SetNoStore();
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetExpires(DateTime.Now);
    Response.Cache.SetLastModified(DateTime.Now);
    Response.Cache.SetAllowResponseInBrowserHistory(false);
    base.OnLoad(e);
}
1 голос
/ 15 января 2009

Если это кэширование, вы должны отключить его с помощью директивы OutputCache:

<%@ OutputCache Duration="0" VaryByParam="None" %>
1 голос
/ 14 января 2009

Может быть, попытаться отладить javascript, чтобы увидеть, пытается ли он когда-нибудь получить контроль в IE? Если ты можешь. А еще лучше посмотреть в Fiddler. http://www.Fiddler2.com

0 голосов
/ 14 января 2009

IE8 позволит вам отладить JavaScript. AFAIK, то, что вы объясняете, не должно происходить в типичной установке, потому что сервер обрабатывает запросы от всех браузеров одинаково. Вы уверены, что находитесь на правильной точке останова и на правильной странице?

Возможно, вы могли бы опубликовать небольшой образец page_load и указать, где вы устанавливаете точку останова, и JS, который обращается к ней?

Для справки: жизненный цикл страницы ASP.NET .

0 голосов
/ 14 января 2009

Что находится внутри Page_Load? Либо EventWireup установлен на false на странице ASPX, либо это что-то в коде.

0 голосов
/ 14 января 2009

Я бы попробовал использовать Панель инструментов разработчика IE , чтобы помочь отладить проблему IE, но я думаю, что вы на правильном пути.

Вы также можете включить отладку сценариев в расширенных настройках IE и отладить сценарий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...