aspx文件中的服务器端代码

net*_*eng 3 asp.net page-lifecycle

我想问一下控制执行生命周期的哪个阶段是"正在执行的aspx文件中编写的服务器端代码"

是在SaveState之前还是之后,我声称它处于渲染阶段,是真的吗?

在aspx文件中如果我的代码写为

"<%"

if(true)
{
rdlistAnswers.Items.Clear();
foreach (string item in myCollection)
{
    i.Value = item;
    i.Text = item;
    rdlistAnswers.Items.Add(i);
}
"%>"
<asp:RadioButtonList ID="rdlistAnswers" runat="server"</asp:RadioButtonList>
Run Code Online (Sandbox Code Playgroud)

对其所做的更改已呈现但未保存.但是当把标签写成时

<asp:RadioButtonList ID="rdlistAnswers" runat="server" OnPreRender="loadMe"</asp:RadioButtonList>
Run Code Online (Sandbox Code Playgroud)

-as loadMe是aspx.cs文件中的事件处理程序方法与上面的代码相同 - 更改被呈现并保存,因此当我在PreRender阶段进行更改时,状态会被保存但是当我通过放置逻辑时在aspx文件中它没有保存,这意味着 - 至少我声称 - 放置在aspx文件中的服务器端代码在渲染阶段执行,你同意我吗???

spl*_*tne 5

直接在aspx文件中编写的代码将在ASP.NET页面生命周期中Render Control结束时执行.

我测试了它预编译一个aspx文件使用Reflector来查看反编译代码.