内联c#代码vs Page_Load方法

本文关键字:Load 方法 Page vs 代码 内联 | 更新日期: 2023-09-27 18:11:57

我正在做一个ASP。. NET Web应用程序。
我有两个文件->示例。Aspx和example.aspx.cs

我想知道把内联c#代码放在example.aspx的顶部有什么区别

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

并将代码放入文件example.aspx.cs

后面代码的Page_Load()方法中
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();
}

内联c#代码vs Page_Load方法

我认为最大的区别是代码执行的那一刻。Page_Load发生在Page_Render之前,这是当(我认为)内联代码被执行。

如果你只是问内联编码VS代码背后,这是值得检查。ASP。. NET - Inline vs. Code-Behind