当我单击页面上的按钮时,为什么.aspx页面加载了两次?

时间:2011-09-26 10:58:48

标签: asp.net

单击.aspx页面中的按钮时,页面会加载两次。在第一次加载时,页面的IsPostBack属性为true,在第二次加载时,此属性将变为false,这对我的网站来说是个问题。

有没有人知道它为什么要加载两次?

2 个答案:

答案 0 :(得分:3)

以下是两次回发的可能方法:

1-请检查您是否没有明确地从客户端进行回发。

2-请检查你的页面中的img标签src属性是否为空。因为当您创建img元素并将其src属性保留为空时,它将自动设置为您的根目录(例如“http://www.mysite.com/”)。因此,当Page_Load事件第一次触发时,使用原始帖子返回(POST请求)时,Page.IsPostBack将设置为“true”。但是当客户端解析服务器响应时,将向服务器发出另一个GET请求,请求该映像(默认情况下其src设置为根URL)这就是Page.IsPostBack属性的原因。第二次用“假”值初始化。

答案 1 :(得分:1)

要使按钮起作用,必须使用PostBack通知服务器发生了事件。

ASP.Net生命周期的工作方式,必须在处理回发事件(如单击按钮)之前加载页面,以便它知道如何处理该事件。因此,当您单击按钮时,该页面将调用以下事件

PreInit -> Init -> InitComplete -> PreLoad -> Load -> Your event handler

如果您的按钮导致重定向,此时页面将被重定向并重新开始页面生命周期。

如果不确切知道按钮的作用,很难说是否可以避免第二页加载。如果您想分享您的活动代码,我可以更新此答案