内联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