上月去上海一家公司面试,笔试中有一题:.net是如何实现Page.IsPostBack属性的?
我看了半天竟然不知道如何作答,想自己平时写了无数程序,在aspx.cs中写 if(!IsPostBack) 不计其数,却从来不曾想过这个问题。
今天g.cn了一下,找到如下文章,并通过在最近开发的败家女导购网上测试,可知.net是根据 Request.Form.Count 是否大于0来判断Page是否是第一次打开的。
原文如下:
C#中关于IsPostBack的解释
Page.IsPostBack是一个标志:当前请求是否第一次打开。
1)每次页面Load的时候,根据需要把每次都要加载的代码放在IsPostBack中,只需要加载一次的代码放在if(!IsPostBack)中。
2) 使用方法
if(!IsPostBack)
{
Response.Write("第一次提交!");
}
if(IsPostBack)
{
Response.Write("按按钮!");
}
3)IsPostBack只有在第一次打开的时候是false,其它时候都是true
4).Net判断一个Page是否第一次打开的方法:Request.Form.Count==0 是第一次打开,IsPostBack==false;Request.Form.Count>0 不是第一次打开,IsPostBack==true;
5)每次用户回传服务器任何信息的时候,都会引发isPostBack属性用来判断此用户是否曾经做过登陆或者其他事件
6)当通过IE的地址栏等方式打开一个URL时是第一次打开, 当通过页面的提交按钮或能引起提交的按钮以POST的方式提交的服务器时,页面就不再是第一次打开了。
写下此文,纪念一下那次被out的面试。
原文:http://www.cnblogs.com/yangxiaohu1/archive/2010/02/04/net-ispostback-true.html