ASP.NET Web Pages 全局页面
本章节我们了解和学习 全局页面 _AppStart 和 _PageStart 的使用
- _AppStart : 用在 Web 服务启动前访问
- _PageStart : 用在第一个页面之前访问
_AppStart
大多数的服务器端代码是写在单个网页里边
例如,如果网页中包含输入表单,那么这个网页通常包含用来读取表单数据的服务器端代码
但是,我们可以在站点根目录下创建一个名为 _AppStart
的页面,这样在站点启动之前可以先启动代码执行
如果存在此页面,ASP.NET 会在站点中其它页面被请求时,首先运行这个页面
_AppStart 的典型用途是启动代码和初始化全局数值(比如计数器和全局名称)
_AppStart 文件扩展名与其它网页一致,比如:_AppStart.cshtml
_AppStart 使用下划线前缀,因此,这些文件不可以直接浏览
_PageStart
_PageStart 用于在每个文件夹中的任何页面之前运行的代码
_PageStart 的典型用途是为一个文件夹中的所有页面设置布局页面, 或者在运行某个页面之前检查用户是否已经登录
_PageStart 文件扩展名与其它网页一致,比如:_PageStart.cshtml
我们网站中的每个文件夹都可以添加一个名为 _PageStart 的文件
它是如何工作的?
下图显示了 _AppStart 和 _PageStart 的工作机制
-
当接收到一个请求时,ASP.NET 会首先检查 _AppStart 是否存在
如果 _AppStart 存在且这是站点接收到的第一个请求,则运行 _AppStart
-
然后 ASP.NET 检查 _PageStart 是否存在
如果 _PageStart 存在,则在其它被请求的页面运行之前先运行 _PageStart
我们可以在 _PageStart 中调用 RunPage() 来指定被请求页面的运行位置
不然,默认情况下,被请求页面是在 _PageStart 运行之后才被运行