C#入门(五)—ASP.NET应用程序基础
一、编译和运行应用程序
1、直接部署:将应用程序源代码复制到发布用Web服务器上即可
2、预编译:部署程序集,而非源代码。
二、发布网站选项说明
1、允许更新此预编译站点:选中这一项后,编译出来的包括aspx文件和dll;不选中这一项,编译出来的aspx中没有界面信息,只有一句静态文本,就是不允许发布后修改页面。
2、使用固定命名和单页程序集:会按照页面的类名编译出很多名字固定的dll。
3、对预编译程序集启用强命名
三、常规页生命周期阶段列表
1、页请求:页请求发生在页生命周期开始之前。用户请求页时,ASP.NET 将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况下发送页的缓存版本以进行响应。
2、开始:在开始阶段,将设置页属性,如 Request 和 Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置 IsPostBack 属性。此外,在开始阶段期间,还将设置页的 UICulture 属性。
3、页初始化:页初始化期间,可以使用页中的控件,并将设置每个控件的 UniqueID 属性。此外,任何主题都将应用于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。
4、加载:加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。
5、验证:在验证期间,将调用所有验证程序控件的 Validate 方法,此方法将设置各个验证程序控件和页的 IsValid 属性。
6、回发事件处理:如果请求是回发请求,则将调用所有事件处理程序。
7、呈现:在呈现期间,视图状态将被保存到页,然后页将调用每个控件,以将其呈现的输出提供给页的 Response 属性的 OutputStream。
8、卸载:完全呈现页、将页发送至客户端并准备丢弃时,将调用卸载。此时,将卸载页属性(如 Response 和 Request)并执行清理。
四、生命周期事件(关注子页面和母版页的事件触发顺序)
1、Page_PreInit
使用 IsPostBack 属性确定是否是第一次处理该页。创建或重新创建动态控件。动态设置主控页。动态设置 Theme 属性。读取或设置配置文件属性值。
注意:如果请求是回发请求,则控件的值尚未从视图状态还原。如果在此阶段设置控件属性,则其值可能会在下一阶段被改写。
2、Page_Init
读取或初始化控件属性。
3、Page_Load
读取和更新控件属性。
4、Control events
执行特定于应用程序的处理:如果页包含验证程序控件,请在执行任何处理之前检查页和各个验证控件的 IsValid 属性。处理特定事件,如 Button 控件的 Click 事件。
5、Page_PreRender
对页的内容进行最后更改。
6、Page_Unload
执行最后的清理工作,可能包括:关闭打开的文件和数据库连接。完成日志记录或其他特定于请求的任务。
注意:在卸载阶段,页及其控件已被呈现,因此无法对响应流做进一步更改。如果尝试调用方法(如 Response.Write 方法),则该页将引发异常。