大家不要小看这一句代码,我记得我学ASP.NET的时候,就由于少了这句代码,引起了好多的错误,这里回忆一下以前亲自遇到的问题,希望能给有这些错误的朋友一些启示。
1。验证码错误
验证码一般是在Page_Load事件里直接生成,或是调用函数生成的,如果你没有把生成验证码的代码放在if(!Page.IsPostBack)里面,那当你点登陆等按钮时,将永远也登陆不了,你仔细检查发现登陆代码并没有,但就是登陆不了,如果跟踪,你会发现,你填入的验证码和程序生成的验证码会不同,但是在登陆的时候,你明明填的是正确的验证码,哈哈,这总问题要是没有经验,真是会搞的头晕。这里我给大家解释一下为什么点登陆的时候得到验证码会不同。
当你点登陆按钮的时候,一般人以为会直接执行登陆按钮的事件代码,其实错误就在这里,点登陆的时候,首先执行的是Page_Load的代码,也就是说,无论你什么时候点按钮,首先执行的是Page_Load事件里的代码,然后才执行按钮对应的事件代码,所以,当你点登陆时,由于它执行了Page_Load里的代码,使得验证码重新生成了,而你填入的验证码是不会变的,结果一比较两个验证码(一个你填的,一个重新生成的),当然就不同了。此种问题,只要将生成验证码的代码放在if(!Page.IsPostBack)里面就可以解决了,放在里面后,当你查看页面时,点登陆按钮,就不会再执行这里面的代码了。
2。得不到下拉菜单的值
一般DropDownList控件里的内容,也是在Page_Load里通过代码添加的,如果这些代码没有放在没有if(!Page.IsPostBack)里,那么点登陆等按钮时,下拉菜单中的内容又会重新生成,所以无论你选了哪一项,都只能得到第一项的值,解决方法同上个问题,原理相同,这里就不解释了。