编程语言
首页 > 编程语言> > 内联C#代码与Page_Load方法

内联C#代码与Page_Load方法

作者:互联网

我正在使用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();
}

解决方法:

我认为最大的区别是代码执行的时间. Page_Load发生在执行我内联代码的Page_Render之前.

标签:inline,code-behind,pageload,asp-net,c
来源: https://codeday.me/bug/20191030/1971796.html