Page_Load在Firefox中调用,但不是IE

时间:2009-01-14 20:06:39

标签: c# asp.net internet-explorer pageload

我已经被投入到ASP.NET项目中,并且我有一个页面,其中包含通过AJAX获取的控件。

控件的Page_Load函数需要一些逻辑才能从Query字符串中获取正确的值。

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

如果我输入断点,我可以在FF中加载页面并观察它停止,但在IE中:没有交易。

我很漂亮(阅读:COMPLETELY)是ASP.NET新手,但我是一位经验丰富的PHP开发人员。 所以我认为这可能与IE使用AJAX回调获取控件的方式有些混淆。

有没有人有任何想法?

干杯

6 个答案:

答案 0 :(得分:5)

这似乎是一个缓存问题,通过这样做来解决:

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 :(得分:1)

也许尝试调试javascript以查看它是否曾尝试在IE中获取控件?如果你可以的话。更好的是,在Fiddler观看。 http://www.Fiddler2.com

答案 2 :(得分:1)

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

<%@ OutputCache Duration="0" VaryByParam="None" %>

答案 3 :(得分:0)

我尝试使用IE Developer Toolbar来帮助调试IE问题,但我认为你走在正确的轨道上。

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

IE8会让你调试javascript。 AFAIK,您解释的内容不应该发生在典型的设置中,因为服务器处理来自所有浏览器的请求相同。你确定你坐在正确的断点上,并在正确的页面上吗?

也许您可以发布一个page_load的小样本以及设置断点的位置,以及回调它的JS?

供您参考,以下是ASP.NET page lifecycle