ASP.NET中IsPostBack用法詳解_實用技巧

來源:互聯網
上載者:User

本文針對ASP.NET中IsPostBack的用法進行了詳細的說明,有助於讀者更準確的掌握ASP.NET中IsPostBack的用法。

一、IsPostBack介紹:

Page.IsPostBack是一個標誌:當前請求是否第一次開啟。調用方法為:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPostBack,它們都等價。

1)當通過IE的地址欄等方式開啟一個URL時是第一次開啟, 當通過頁面的提交按鈕或能引起提交的按鈕以POST的方式提交的伺服器時,頁面就不再是第一次開啟了。(每點擊一次按鈕,都是一次載入)

2)IsPostBack只有在第一次開啟的時候是false,其它時候都是true

3).Net判斷一個Page是否第一次開啟的方法:Request.Form.Count>0

4)每次頁面Load的時候,根據需要把每次都要載入的代碼放在IsPostBack中,只需要載入一次的代碼放在if(!IsPostBack)中。

5)每次使用者回傳伺服器任何資訊的時候,都會引發isPostBack屬性用來判斷此使用者是否曾經做過登陸或者其他事件。

二、關於IsPostBack的結論歸納:

對.Net的原始碼中相關的處理進行的分析得到如下的結論:

1)對於使用Server.Transfer進行遷移時遷移到的頁面其IsPostBack=false。

2)Post方式如果Request中沒有請求值,即Request.Form =null則IsPostBack=false;Get方式如果Request中沒有請求值,即Request.QueryString =null則IsPostBack=false。

3)如果QueryString或Form雖然有請求值,但是QueryString或Form中的Key沒“__VIEWSTATE”和“__EVENTTARGET”和“__VIEWSTATEFIELDCOUNT”,並且沒有鍵為“null”,值以“__VIEWSTATE”開頭並且也沒有值為“__EVENTTARGET”的索引值對,則IsPostBack=false。

4)使用Response.Redirect方式向自畫面遷移時,此時IsPostBack=false。

5)發生跨頁提交(CrossPagePostBack),當訪問PreviousPage屬性的時候,對於源PageIsPostBack=true。

6)發生跨頁提交(CrossPagePostBack)時目標頁面是IsPostBack=false

7)使用Server.Execute遷移到的頁面其IsPostBack=false。

8)在Page運行期間其對應的DLL被更新了並且Page的樹結構發生過變化,這種情況下請求時IsPostBack=false。

結論總結:
一般情況判斷Request中如果沒有請求值則IsPostBack=false。如果有請求值但是不包括“__VIEWSTATE”等一些特殊的鍵或值,則IsPostBack=false(每次請求後.Net架構會將一些特殊的隱藏欄位“__VIEWSTATE”等返回給用戶端)。還有一些特殊的情形是上面的規則不能正確判斷的需要特殊處理的,這些情形包括Server.Transfer,Response.Redirect,CrossPagePostBack,Server.Execute,發生了頁面元素變化及重新編譯。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.