缺少if(!Page.IsPostBack)引起的错误(原创)


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值