📅  最后修改于: 2020-11-21 05:27:59             🧑  作者: Mango
在本章中,我们将介绍诸如_AppStart.cshtml和_PageStart.cshtml之类的全局页面,它们并不经常被提及,而且当它们出现时,它似乎是作为WebMatrix / ASP.Net Web Pages的一部分被提及的。
首次启动应用程序时,_AppStart.cshtml将执行一次。在网站的根文件夹中,您将看到_AppStart.cshtml文件,这是一个特殊文件,用于包含全局设置。
它是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和照片)将在导航栏中显示为选项卡,如以下屏幕快照所示。
与在站点启动之前运行的_AppStart相似,您也可以编写在任何其他页面之前运行的代码。对于您网络中的每个文件夹,您可以添加一个名为_PageStart的文件。
每次请求相同或较低级别文件夹中的页面时,都会执行_PageStart.cshtml。
这是执行每个请求处理(例如设置布局页面)的地方。
当请求页面时,如果这是对站点中任何页面的第一个请求,则ASP.NET首先检查_AppStart.cshtml页面是否存在。如果存在_AppStart.cshtml页面,则_AppStart.cshtml页面中的任何代码都将首先运行,然后将运行请求的页面。
当请求页面时,ASP.NET首先检查是否存在_PageStart.cshtml页面,如果存在,则运行该页面,然后运行所请求的页面。