代码之家  ›  专栏  ›  技术社区  ›  tobyc

在Firefox中调用了Page_Load,但在IE中没有调用

  •  3
  • tobyc  · 技术社区  · 17 年前

    我被扔进了ASP。NET项目,我有一个页面,其中包含一个通过AJAX获取的控件。

    控件的Page_Load函数执行一些必要的逻辑,以便从Query字符串中获取正确的值。

    问题是IE中没有调用Page_Load函数。

    如果我在里面放一个断点,我可以在FF中加载页面并观察它停止,但在IE中:没关系。

    我对ASP非常陌生。NET,但我是一名经验丰富的PHP开发人员。 因此,我认为IE执行AJAX回调以获取控制权的方式可能有些令人担忧。

    有人有什么想法吗?

    干杯

    6 回复  |  直到 17 年前
        1
  •  5
  •   tobyc    17 年前

    这似乎是一个缓存问题,通过执行以下操作来解决:

    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);
    }
    
        2
  •  1
  •   John Hoven    17 年前

    也许试着调试javascript,看看它是否试图在IE中获得控制权?如果可以的话。更好的是,看《小提琴手》。 http://www.Fiddler2.com

        3
  •  1
  •   Iain Holder    17 年前

    如果是缓存,您应该使用OutputCache指令将其关闭:

    <%@ OutputCache Duration="0" VaryByParam="None" %>
    
        4
  •  0
  •   BBetances    17 年前

    Page_Load里面有什么?ASPX页面上的EventWireup设置为false,或者它是代码中的某个内容。

        5
  •  0
  •   Jeff Martin    17 年前

    我会试着用 IE Developer Toolbar 帮助调试IE问题,但我认为你走对了路。

    您还可以在IE的高级选项中启用脚本调试并调试脚本。

        6
  •  0
  •   StingyJack    17 年前

    IE8将允许您调试javascript。AFAIK,你所解释的不应该发生在典型的设置中,因为服务器处理来自所有浏览器的请求都是一样的。你确定你坐在正确的断点和正确的页面上吗?

    也许你可以发布一个page_load的小示例,以及你在哪里设置断点,以及回调它的JS?

    供您参考,这是 ASP.NET page lifecycle .