ASP.NET Web Pages - 全局頁面

本章為您講解全局頁面 AppStart 和 PageStart。

Web 啟動之前:_AppStart

大多數服務器端代碼都是在獨立的網頁中編寫的。例如,假如網頁包含輸入表單,那么該網頁通常包含用于讀取數據的服務器代碼。

不過,通過在站點根目錄中創建名為 _AppStart 的頁面,您能夠在站點啟動前就已執行啟動代碼(startup code)。假如該頁面存在,ASP.NET 會在站點內的任何頁面被請求之前首先運行這個頁面。

通常 _AppStart 用于啟動代碼和全局值的初始化,比如計數器和全局名稱。

注釋 1:_AppStart 的文件擴展名應與網頁相同,比如 _AppStart.cshtml。

注釋 2:_AppStart 有下劃線前綴。正因如此,用戶才無法直接查看該文件。

每張頁面之前:_PageStart

就像在站點啟動前運行 _AppStart 那樣,您能夠在每個文件夾中的任意頁面之前運行代碼。

對于 web 中的每個文件夾,您能夠添加名為 _PageStart 的文件。

通常 _PageStart 用于設置文件夾中所有頁面的布局文件,或者在運行頁面之前檢查用戶登錄。

如何工作?

下面的示意圖展示了其工作原理:

全局頁面 AppStart 和 PageStart 工作原理

當請求到來時,ASP.NET 檢查 _AppStart 是否存在。如果存在,并且這是對站點的第一次請求,則運行 _AppStart。

然后 ASP.NET 檢查 _PageStart 是否存在。如果存在,則運行 _PageStart,在被請求的頁面之前。

如果您在 _PageStart 內部引用了對 RunPage() 的調用,那么您可以規定在何處運行被請求的頁面。否則,_PageStart 在被請求頁面之前運行。