欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET Web Pages - 全局页面

程序员文章站 2022-03-24 23:48:46
web 启动之前:_appstart 大多数服务器端代码都是在独立的网页中编写的。例如,假如网页包含输入表单,那么该网页通常包含用于读取数据的服务器代码。 不过,通过在站点根目录中创建名为 _app...

web 启动之前:_appstart

大多数服务器端代码都是在独立的网页中编写的。例如,假如网页包含输入表单,那么该网页通常包含用于读取数据的服务器代码。

不过,通过在站点根目录中创建名为 _appstart 的页面,您能够在站点启动前就已执行启动代码(startup code)。假如该页面存在,asp.net 会在站点内的任何页面被请求之前首先运行这个页面。

通常 _appstart 用于启动代码和全局值的初始化,比如计数器和全局名称。

注释 1:_appstart 的文件扩展名应与网页相同,比如 _appstart.cshtml。

注释 2:_appstart 有下划线前缀。正因如此,用户才无法直接查看该文件。



每张页面之前:_pagestart

就像在站点启动前运行 _appstart 那样,您能够在每个文件夹中的任意页面之前运行代码。

对于 web 中的每个文件夹,您能够添加名为 _pagestart 的文件。

通常 _pagestart 用于设置文件夹中所有页面的布局文件,或者在运行页面之前检查用户登录。



如何工作?

下面的示意图展示了其工作原理:

ASP.NET Web Pages - 全局页面

当请求到来时,asp.net 检查 _appstart 是否存在。如果存在,并且这是对站点的第一次请求,则运行 _appstart。

然后 asp.net 检查 _pagestart 是否存在。如果存在,则运行 _pagestart,在被请求的页面之前。

如果您在 _pagestart 内部引用了对 runpage() 的调用,那么您可以规定在何处运行被请求的页面。否则,_pagestart 在被请求页面之前运行。