c# - 内联 C# 代码与 Page_Load 方法

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

我正在开发 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();
     }  
}

根据我放置代码的位置,应用程序在将 session 数据加载到表单元素方面表现不同。

如有任何帮助,我们将不胜感激。

更新: 我弄清楚了为什么根据我放置代码的位置,应用程序的行为会有所不同。如果我将内联 C# 方法调用放在 .aspx 的顶部,它不会在回传上运行。如果我将 C# 方法调用放在 .aspx.cs 代码隐藏文件的 Page_Load() 方法中,它会在回传上运行。因此,如果我想将该方法放在 Page_Load 方法中但不在回传中运行它,我需要将其包装在:

if (!IsPostBack)
{
    loadSessionData();
}

最佳答案

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

关于c# - 内联 C# 代码与 Page_Load 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16328816/

相关文章:

c# - 登录后将用户重定向回原始操作

c# - 匹配以随机内容开头的可选模式

c# - 没有为此对象定义无参数构造函数-nop commerce 2.6

asp.net - 由于 .suo 文件,发布我的 Web 应用程序可能需要很长时间才能完成

c# - 如何检索泛型方法的名称,包括泛型类型名称

c# - 嵌套控件的事件未在 UserControl 中触发

asp.net - 链接 btn 工作但看起来像普通文本

c++ - 编译器是否能够对从 dll 导入的函数进行程序集成?

C++11 性能 : Lambda inlining vs Function template specialization

firefox - 使用 Firefox 3.5 在 HTML 中内联 SVG