为什么我的ASP.NET里的页面Page_Load函数只会执行一次

最近在修改别人的以前做的未完善的ASP.NET项目。碰到一个棘手的问题。我在设置断点调试的时候发现页面第一次在浏览器上加载时会进入Page_Load函数一次,然后我点击其第二个页面链接后第二个页面的Page_Load也会加载一次,然后我在点击链接回到第一个打开的页面,发现再也进入不了Page_Load函数,然后再次进入第二个页面的Page_Load函数也不会再执行。我第一反映是,会不会页面设置了缓存呢,可是查了下页面的PAGE标签没看到半个CACHE字样,配置文件也没有。而且奇怪的是,只有在当前页面通过刷新才会进入PAGE_LOAD函数,在其他页面链接到这个页面怎么也进入不了PAGE_LOAD函数。戴高手解答

页面的load事件只会在访问页面时加载。追问

我打开这个页面不就是访问页面了吗,比如我点击导航栏的板块,单行是个A标签里面的导航指向这个页面,当我在别的页面点击了这个页面的链接,按理说应该先进入这个页面的PAGE_LOAD函数啊。怎么感觉访问这个页面时浏览器直接导航到该页面的缓存页面似的,并没有更新页面内容。

追答

这是因为页面已经加载一次,第二次就不用编译的结果。

追问

那当我在当前页面点击浏览器的刷新按钮,或则按F5怎么PAGE_LOAD又被调用了呢。我反复测试自己的项目,无论是刷新,还是通过A标签链接访问指定页面都会进入PAGE_LOAD。不管是第一次加载,还是第几次。每次都会进入PAGE_LOAD。不然.NET的ISPOSTBACK做什么用

追答

那是因为你又给了个地址,让它跳转当然又会调用该方法了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-17
只有点击服务器控件 页面 才会回传 重新加载追问

可是我刷新页面,页面也会从新加载,而且在自己项目里,通过A链接访问,也会进入PAGE_LOAD。不知道是不是该项目有什么问题

第2个回答  2012-04-17
这主要取决于你以什么方式打开链接的。如果直接是URL的超链接,应该不会出现这个问题,如果还是有这个问题,可以到别的机器上试试看,可能是本机浏览器的问题
相似回答