ASP.NET Web Pages - 頁面布局
- 上一頁 WebPages Razor
- 下一頁 WebPages 文件夾
通過 Web Pages,很容易創建布局一致的網站。
一致的外觀
在因特網上,您會發現很多擁有統一外觀的網站:
- 每頁擁有相同的頁眉
- 每頁擁有相同的頁腳
- 每頁擁有相同的樣式和布局
通過 Web Pages,可以高效地實現這些。您可以得到可重復使用的代碼塊(內容塊),比如頁眉和頁腳,在獨立的文件中。
您也可以為所有頁面定義一致的布局,使用布局模板(布局文件)。
內容塊
很多網站都有需要在每張頁面上顯示的內容(比如頁眉和頁腳)。
通過 Web Pages,您可以使用 @RenderPage() 方法從不同的文件導入內容。
內容塊(來自另一個文件)能夠被輸入網頁中的任意位置,并可包含文本、標記和代碼,就像任何常規的網頁那樣。
使用通用的頁眉和頁腳,會省去大量的工作。您不必在每頁中編寫相同的內容,并且當您改變頁眉或頁腳文件時,內容會在所有頁面中更新。
在代碼中是這樣的:
實例
<html> <body> @RenderPage("header.cshtml") <h1>Hello Web Pages</h1> <p>This is a paragraph</p> @RenderPage("footer.cshtml") </body> </html>
運行實例
使用布局頁面
在之前的內容中,您已看到在多個網頁中引用相同的內容是很簡單的。
創建一致外觀的另一種方法是使用布局網頁。布局網頁包含網頁的結構,而不是內容。當網頁(內容頁)鏈接到布局頁時,它會根據布局頁(模板)來顯示。
布局頁類似普通的網頁,但是會在引用內容頁的位置調用 @RenderBody() 方法。
每個內容頁必須以 Layout 指令開頭。
在代碼中是這樣的:
布局網頁:
<html> <body> <p>這是文本。</p> @RenderBody() <p>© 2012 CodeW3C.com. All rights reserved.</p> </body> </html>
任意網頁:
@{Layout="Layout.cshtml";} <h1>Welcome to CodeW3C.com</h1> <p> 這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。 這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。 這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。這是文本。 </p>
運行實例
不要重復自己
通過兩個 ASP.NET 工具,內容塊和布局頁,您能夠為 web 應用程序設定一致的外觀。
這些工具會為您省去大量的工作,因為您不必在所有頁面上重復相同的信息。將標記、樣式和代碼集中起來,使得 web 應用程序更便于管理和維護。
防止代碼泄露
在 ASP.NET 中,名稱以下劃線開頭的文件無法通過 web 來瀏覽。
如果您希望禁止用戶查看內容塊或布局文件,請對文件重新命名:
- _header.cshtm
- _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"; }
- 上一頁 WebPages Razor
- 下一頁 WebPages 文件夾