3

我正在开发一个 ASP.NET Web 应用程序。
我有两个文件-> example.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();
}
4

2 回答 2

3

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

于 2013-05-02T01:09:53.433 回答
1

如果您只是询问 Inline Coding VS code behind ,这是值得检查的。 ASP.NET - 内联与代码隐藏

于 2013-05-02T11:45:47.910 回答