ASP.NET WP - 全局页面



在本章中,我们将介绍全局页面,例如_AppStart.cshtml_PageStart.cshtml,这些页面通常不会被提及,而当它们被提及时,似乎会被当作WebMatrix/ASP.Net Web Pages的一部分来介绍。

_AppStart

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

AppStart
  • 它是Web Pages框架的正式组成部分,Razor视图引擎正是基于此框架。

  • 根文件夹中的_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)
   };
}

如您所见,当您运行此应用程序时,三个页面(博客、推特和照片)的内容将作为选项卡显示在导航栏中,如下面的屏幕截图所示。

Contents Three Pages

_PageStart

类似于在站点启动之前运行的_AppStart,您还可以编写在任何其他页面之前运行的代码。在您的Web中的每个文件夹中,您都可以添加一个名为_PageStart的文件。

  • _PageStart.cshtml在每次请求同一文件夹或下级文件夹中的页面时都会执行。

  • 它是执行每个请求处理(例如设置布局页面)的地方。

PageStart

工作流程

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

Work Flow

当收到对页面的请求时,ASP.NET首先检查是否存在_PageStart.cshtml页面,如果存在,则运行它,然后运行请求的页面。

广告