我的页面加载事件中有一些代码,它们应该只在第一次加载页面时运行,但是,每次在浏览器上单击“刷新”时它都会运行即使我正在检查回发:
If not page.ispostback then
' Code...
End if
答案 0 :(得分:2)
刷新不是回发(即没有POST
发生,它是另一个GET
),是浏览器再次询问该页面。在这种情况下,从服务器的角度来看,这是一个新的请求。
答案 1 :(得分:0)
IsPostBack
属性只能检测__doPostBack
JavaScript函数调用生成的请求。所有其他请求都被视为新请求,因为ASP.NET无法知道请求是如何生成的。
由于__doPostBack
函数填充了隐藏的表单字段,因此ASP.NET运行时能够检测到请求是由回发的控件生成的。所有其他请求都不会填充这些隐藏字段,因此运行时不会将它们视为后备字段。