内联C#代码与Page_Load方法

时间:2013-05-02 01:06:52

标签: c# asp.net inline code-behind pageload

我正在开发一个ASP.NET Web应用程序 我有两个文件 - > example.aspx及其代码在example.aspx.cs后面

我想知道在example.aspx顶部放置内联C#代码之间有什么区别

<%    
    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();
}

2 个答案:

答案 0 :(得分:3)

我认为最大的区别在于代码执行的时刻。 Page_Load出现在Page_Render之前,即(我认为)内联代码执行时。

答案 1 :(得分:1)

如果您只是询问Inline Coding VS代码,这值得检查。 ASP.NET - Inline vs. Code-Behind