【问题标题】:In ASP.NET, do inline expressions get executed before or after the code behind?在 ASP.NET 中,内联表达式是在后面的代码之前还是之后执行的?
【发布时间】:2014-08-07 00:01:07
【问题描述】:

ASP inline expressions<% ... %> 是在执行代码隐藏代码之前还是之后在服务器上运行?

【问题讨论】:

  • 我相信您的问题已经在这里得到解答stackoverflow.com/questions/1452928/asp-net-inline-code
  • 谢谢马库斯,但我看不到它在那篇文章中具体说明内联表达式是在后面的代码之前还是之后执行的。换句话说,一个可以依赖另一个已经被执行的,但它是哪种方式呢?

标签: asp.net code-behind


【解决方案1】:

内联代码在 asp.net 页面生命周期中的预渲染页面之后执行。因此,它可以在某些事情之前运行,也可以在某些事情之后运行。在此处阅读页面生命周期:

http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx

预渲染之后发生的事件是:

  • 预渲染完成
  • SaveStateComplete
  • 渲染
  • 卸载

因此其他页面生命周期事件中的任何代码都将首先执行。

来自Microsoft's documentation

嵌入式代码块是在页面运行期间执行的服务器代码 渲染阶段。

【讨论】:

  • 感谢 Abe,但我在发帖之前已经阅读了该页面,我无法确定两者的顺序。它没有特别提到两者中的任何一个,所以我很想知道。你能解释一下吗?我的内联表达式可以依赖已经初始化的变量背后的代码吗?还是反过来?
  • @johntrepreneur 用简单的话,在后面的代码之后执行
  • @johntrepreneur,我继续添加了一个指向 Microsoft 文档的链接,他们在该文档中查看了该代码何时执行。我很确定您可以依赖变量背后的代码,只要它们在预渲染事件之前被初始化。他们可能必须公开。
  • @Aristos,我认为这不是真的。我指定的 4 个事件可以在代码隐藏文件中有自己的代码。 “代码背后”不仅仅是一个代码单元。有几个事件组成,所有事件都按特定顺序执行。
  • @AbeMiessler 这个事件是页面渲染的一部分。因此,至少需要一个事件来呈现该代码是合乎逻辑的,但想法是在后面的代码之后执行。此事件是页面最终呈现的最后阶段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-05
  • 1970-01-01
  • 2010-11-22
  • 1970-01-01
相关资源
最近更新 更多