天天看點

一、Core的布局頁、起始頁及錯誤頁

使用布局頁相當于一個母版頁,可以将各個頁面公用部分,如上方标題區、左側導航菜單區、下方版權聲明及狀态顯示區以及通用的js及css引用等,集中放到布局頁管理,具體功能頁面隻需關注自己獨有的界面元素系布局即可。

建立布局頁

在Views檔案夾下建立一個Shared檔案夾,檔案夾下建立一個名稱為“_Layout.cshtml”的MVC視圖布局頁。

一、Core的布局頁、起始頁及錯誤頁

将_Layout.cshtml布局頁的内容修改如下:

布局頁的使用

使用布局頁,隻需要指定頁面的Layout即可,我們以上節建立的Home下的Index.cshtml為例,隻需在頁面上添加如下代碼即可。

此時,我們運作程式,已經成功使用了布局頁

一、Core的布局頁、起始頁及錯誤頁

為了避免每個頁面都要指定Layout這種重複繁瑣的操作,MVC為我們提供了MVC視圖起始頁,我們隻需添加一個視圖起始頁,并在視圖起始頁裡面添加對布局頁的引用,即可達到所有頁面都使用布局頁的目的。

建立起始頁

右鍵Views檔案夾,通過“添加->建立項”菜單添加一個名稱為“_ViewStart.cshtml”的MVC視圖起始頁。

一、Core的布局頁、起始頁及錯誤頁

起始頁的使用

在起始頁添加對布局頁的引用,修改_ViewStart.cshtml起始頁的内容如下:

對于個别不需要使用統一布局頁的界面,如登入界面、注冊界面,我們可以通過在頁面頭部添加以下代碼,禁止使用布局頁面。

開發環境錯誤頁

Asp.net Core為我們提供了統一的錯誤處理機制,在Startup.cs中的Configure方法中,已經預設添加了以下開發環境的錯誤處理代碼。

我們将HomeController中的Index方法修改為直接抛出異常,進行測試。

直接開發環境調試運作,得到如下結果頁面,錯誤頁面上會提示詳細的錯誤資訊,這有助于我們快速定位并解決異常資訊。

一、Core的布局頁、起始頁及錯誤頁

生産環境錯誤頁

在生産環境我們一般不會将上述頁面直接呈現給我們的客戶,而是選擇制作一個提示友好的錯誤頁。我們首先修改Startup.cs中Configure方法,添加對生産環境的錯誤處理。

在Controllers檔案夾下建立一個包含如下内容,名稱為SharedController的控制器。

在Shared檔案下建立一個名稱為Error.cshtml的錯誤頁面,将Error.cshtml的内容修改為如下代碼:

模拟生産環境運作程式(具體方法參看上一篇使用Kestrel服務運作程式的第二種方法,或直接釋出部署到IIS上),結果如下:

一、Core的布局頁、起始頁及錯誤頁

 資源的多次請求

一、Core的布局頁、起始頁及錯誤頁

我們要對靜态資源進行壓縮、多資源的捆綁。

點到為止