2013-05-02 77 views
3

我正在研究ASP.NET Web應用程序。
我有兩個文件 - > example.aspx及其example.aspx.cs內聯C#代碼和Page_Load方法

我想知道的區別是什麼把內嵌C#代碼在example.aspx

<%  
    if (Session["Page"] != null) 
    {  
     //method that maps session vars to form elements 
     loadSessionData(); 
    }   
%> 

頂部之間的代碼背後並把代碼中的代碼的Page_Load()方法的文件example.aspx.cs

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Session["Page"] != null) 
    {  
     //method that maps session vars to form elements 
     loadSessionData(); 
    } 
} 

根據這裏我把問候應用程序的表現不同的代碼會話數據加載到表單元素的後面。

任何幫助,將不勝感激。

更新: 我明白了爲什麼取決於我在哪裏放置代碼,應用程序的行爲有所不同。如果我將內聯C#方法調用放在.aspx的頂部,它不會在回發上運行。如果我將C#方法調用放在文件後面的.aspx.cs代碼的Page_Load()方法中,它會在回發上運行。所以,如果我想要把方法在Page_Load方法,但不是回發,我需要把它包在運行它:

if (!IsPostBack) 
{ 
    loadSessionData(); 
} 
+1

'<%...%>'在頁面呈現時運行.... – Aristos 2013-05-02 01:23:13

回答

3

我認爲在執行代碼時最大的區別是在時刻。 Page_Load發生在Page_Render之前,這是執行內嵌代碼的時候(我認爲)。