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頁面,如果存在,則執行它,然後執行請求的頁面。

廣告

© . All rights reserved.