我正在开发一个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();
}
答案 0 :(得分:3)
我认为最大的区别在于代码执行的时刻。 Page_Load出现在Page_Render之前,即(我认为)内联代码执行时。
答案 1 :(得分:1)
如果您只是询问Inline Coding VS代码,这值得检查。 ASP.NET - Inline vs. Code-Behind