📜  ASP.NET WP-全局页面

📅  最后修改于: 2020-11-21 05:27:59             🧑  作者: Mango


在本章中,我们将介绍诸如_AppStart.cshtml_PageStart.cshtml之类的全局页面,它们并不经常被提及,而且当它们出现时,它似乎是作为WebMatrix / ASP.Net Web Pages的一部分被提及的。

_AppStart

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

AppStart

  • 它是Razor View Engine所基于的Web页面框架的正式组成部分。

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

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

目录三页

_PageStart

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

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

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

PageStart

工作流程

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

工作流程

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