ASP.NET 網頁 - 頁面佈局
使用 Web Pages,您可以輕鬆地建立具有一致佈局的網站。
一致的外觀
在網際網路上,您會發現許多網站具有一致的外觀和感覺。
- 每頁都有相同的頁首
- 每頁都有相同的頁尾
- 每頁都有相同的樣式和佈局
使用 Web Pages,可以非常高效地實現這一點。您可以將可重用的內容塊(內容塊)包含在單獨的檔案中,例如頁首和頁尾。
您還可以使用佈局模板(佈局檔案)為所有頁面定義一致的佈局。
內容塊
許多網站都包含在每頁上顯示的內容(例如頁首和頁尾)。
使用 Web Pages,您可以使用 @RenderPage() 方法從單獨的檔案匯入內容。
可以隨時將內容塊(來自另一個檔案)匯入到網頁中,並且它們可以包含文字、標記和程式碼,就像任何常規網頁一樣。
以使用通用頁首和頁尾為例,這可以為您節省大量工作。您不必在每個頁面中編寫相同的內容,並且當您更改頁首或頁尾檔案時,所有頁面中的內容都會更新。
程式碼顯示如下
示例
<html>
<body>
@RenderPage("header.cshtml")
<h1>你好 Web Pages</h1>
<p>這是一個段落</p>
@RenderPage("footer.cshtml")
</body>
</html>
執行示例 »
使用佈局頁面
在上一個部分中,您已看到將相同內容包含在許多網頁中很容易。
建立一致外觀的另一種方法是使用佈局頁面。佈局頁面包含網頁的結構,但不包含其內容。當網頁(內容頁面)連結到佈局頁面時,它將根據佈局頁面(模板)進行顯示。
佈局頁面就像一個普通的網頁,但有一個 @RenderBody() 方法呼叫,用於包含內容頁面。
每個內容頁面都必須以 Layout 指令開頭。
程式碼顯示如下
佈局頁面
<html>
<body>
<p>這是頁首文字</p>
@RenderBody()
<p>© 2014 W3Schools. 保留所有權利。</p>
</body>
</html>
任何網頁
@{Layout="Layout.cshtml";}
<h1>歡迎來到 W3Schools</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</p>
執行示例 »
DRY - 不要重複自己
藉助兩個 ASP.NET 工具,內容塊和佈局頁面,您可以為您的 Web 應用程式提供一致的外觀。
這些工具還可以為您節省大量工作,因為您不必在所有頁面上重複相同的資訊。集中標記、樣式和程式碼使 Web 應用程式更易於管理和維護。
防止檔案被瀏覽
在 ASP.NET 中,名稱以下劃線開頭的檔案的內容無法從 Web 瀏覽。
如果您想防止使用者檢視您的內容塊或佈局檔案,請將檔名重新命名為
_header.cshtml
_footer.cshtml
_Layout.cshtml
隱藏敏感資訊
在 ASP.NET 中,隱藏敏感資訊(資料庫密碼、電子郵件密碼等)的常用方法是將資訊儲存在名為 "_AppStart" 的單獨檔案中。
_AppStart.cshtml
@{
WebMail.SmtpServer = "mailserver.example.com";
WebMail.EnableSsl = true;
WebMail.UserName = "username@example.com";
WebMail.Password = "your-password";
WebMail.From = "your-name-here@example.com";
}