在本章中,我们将介绍 _AppStart.cshtml 和 _PageStart.cshtml 等全局页面,这些页面经常不被提及,当它们出现时,似乎作为WebMatrix/ASP.Net网页的一部分提到.
应用程序首次启动时,_AppStart.cshtml执行一次.在您网站的根文件夹中,您将看到一个_AppStart.cshtml文件,该文件是一个用于包含全局设置的特殊文件.
这是网页框架的官方部分,这就是Razor View Engine基于.
根文件夹中的_AppStart具有在站点启动之前执行的启动代码.
_AppStart有一个下划线前缀,因此,无法直接浏览文件.
如果此页面存在,ASP.NET在第一次请求站点中的任何其他页面之前运行它.
让我们看一下AppStart. cshtml文件
@{ App.CacheDuration = 30; // cache content pages for 30 minutes // register for main contents which will appear as tabs on the navigation bar App.ContentPages = new[] { new ContentSource("Blog", "My Blog", "~/Contents/_Blog.cshtml", false), new ContentSource("Twitter", "My Tweets", "~/Contents/_Twitter.cshtml", false), new ContentSource("Photos", "My Photos", "~/Contents/_Photos.cshtml", false) }; }
正如你可以看到三页内容的减去;当您运行此应用程序时,博客,推特和照片将在导航栏中显示为选项卡,如以下屏幕截图所示.
类似于在您的网站开始之前运行的_AppStart,也可以编写在任何其他页面之前运行的代码.对于Web中的每个文件夹,您可以添加名为_PageStart的文件.
每次页面都会执行_PageStart.cshtml请求在相同或更低级别的文件夹中.
这是执行按请求处理的地方,例如设置布局页面.
当请求进入页面时,如果这是对站点中任何页面的第一个请求,ASP.NET首先检查是否存在_AppStart.cshtml页面.如果存在_AppStart.cshtml页面,则首先运行_AppStart.cshtml页面中的任何代码,然后运行所请求的页面.
当页面请求进入时,ASP.NET首先检查是否有_PageStart.cshtml页面,如果是,则运行该页面然后运行请求的页面.