缺少if(!Page.IsPostBack)引起的錯誤(原創)

來源:互聯網
上載者:User

        大家不要小看這一句代碼,我記得我學ASP.NET的時候,就由於少了這句代碼,引起了好多的錯誤,這裡回憶一下以前親自遇到的問題,希望能給有這些錯誤的朋友一些啟示。
        1。驗證碼錯誤
        驗證碼一般是在Page_Load事件裡直接產生,或是調用函數產生的,如果你沒有把產生驗證碼的代碼放在if(!Page.IsPostBack)裡面,那當你點登陸等按鈕時,將永遠也登陸不了,你仔細檢查發現登陸代碼並沒有,但就是登陸不了,如果跟蹤,你會發現,你填入的驗證碼和程式產生的驗證碼會不同,但是在登陸的時候,你明明填的是正確的驗證碼,哈哈,這總問題要是沒有經驗,真是會搞的頭暈。這裡我給大家解釋一下為什麼點登陸的時候得到驗證碼會不同。
        當你點登陸按鈕的時候,一般人以為會直接執行登陸按鈕的事件代碼,其實錯誤就在這裡,點登陸的時候,首先執行的是Page_Load的代碼,也就是說,無論你什麼時候點按鈕,首先執行的是Page_Load事件裡的代碼,然後才執行按鈕對應的事件代碼,所以,當你點登陸時,由於它執行了Page_Load裡的代碼,使得驗證碼重建了,而你填入的驗證碼是不會變的,結果一比較兩個驗證碼(一個你填的,一個重建的),當然就不同了。此種問題,只要將產生驗證碼的代碼放在if(!Page.IsPostBack)裡面就可以解決了,放在裡面後,當你查看頁面時,點登陸按鈕,就不會再執行這裡面的代碼了。
        2。得不到下拉式功能表的值
        一般DropDownList控制項裡的內容,也是在Page_Load裡通過代碼添加的,如果這些代碼沒有放在沒有if(!Page.IsPostBack)裡,那麼點登陸等按鈕時,下拉式功能表中的內容又會重建,所以無論你選了哪一項,都只能得到第一項的值,解決方案同上個問題,原理相同,這裡就不解釋了。
        今天就想到這兩個問題,以後想到再補充,哈哈!現在上班,沒有太多時間。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.