在Asp.NEt中Page_Load()事件載入兩次的現象

來源:互聯網
上載者:User

在用VS2005做WebForm項目時發現很多aspx頁面載入的時候page_load()時載入兩次,在Page頁面上輸出兩個相同的結果,發現原來是AutoEventWireup屬性搞得鬼:

      <%@ Page language="c#" Codebehind="Result.aspx.cs" AutoEventWireup="true" Inherits="test.Result" %>

      解決辦法:

      <%@ Page language="c#" Codebehind="Result.aspx.cs" AutoEventWireup="false" Inherits="test.Result" %>

      原因分析: 

      如果   Page   指令的   AutoEventWireup   屬性被設定為   true(或者如果缺少此屬性,因為它預設為   true),該頁架構將自動調用頁事件,即   Page_Init   和   Page_Load   方法。在這種情況下,不需要任何顯式的   Handles   子句或委託。   
      AutoEventWireup   屬性的缺點是它要求頁事件處理常式具有特定、可預測的名稱。這限制了您在為事件處理常式命名時的靈活性。因此,在   Visual   Studio   中,AutoEventWireup   屬性在預設情況下設定為   false,設計器會產生用於將頁事件綁定到方法的顯式代碼。    
     如果將   AutoEventWireup   設定為   true,Visual   Studio   將產生用於綁定事件的代碼,頁架構將自動基於事件的名稱來呼叫事件。這可能會導致在該頁運行時兩次調用相同的事件代碼。因此,當在   Visual   Studio   中操作時,應盡量使   AutoEventWireup   設定為   false。   

      關於AutoEventWireup詳細資料請參考微軟MSDN   

相關文章

聯繫我們

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