ASP.NET WP - 全局页面

在本章中,我们将介绍 _AppStart.cshtml _PageStart.cshtml 等全局页面,这些页面经常不被提及,当它们出现时,似乎作为WebMatrix/ASP.Net网页的一部分提到.

_AppStart

应用程序首次启动时,_AppStart.cshtml执行一次.在您网站的根文件夹中,您将看到一个_AppStart.cshtml文件,该文件是一个用于包含全局设置的特殊文件.

AppStart

  • 这是网页框架的官方部分,这就是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)
   };
}


正如你可以看到三页内容的减去;当您运行此应用程序时,博客,推特和照片将在导航栏中显示为选项卡,如以下屏幕截图所示.

目录三页

_PageStart

类似于在您的网站开始之前运行的_AppStart,也可以编写在任何其他页面之前运行的代码.对于Web中的每个文件夹,您可以添加名为_PageStart的文件.

  • 每次页面都会执行_PageStart.cshtml请求在相同或更低级别的文件夹中.

  • 这是执行按请求处理的地方,例如设置布局页面.

PageStart

工作流程

当请求进入页面时,如果这是对站点中任何页面的第一个请求,ASP.NET首先检查是否存在_AppStart.cshtml页面.如果存在_AppStart.cshtml页面,则首先运行_AppStart.cshtml页面中的任何代码,然后运行所请求的页面.

工作流程

当页面请求进入时,ASP.NET首先检查是否有_PageStart.cshtml页面,如果是,则运行该页面然后运行请求的页面.