# ASP.NET Web Pages - 頁面布局
通過 Web Pages ,創建一個布局一致的網站是很容易的事。
## 一致的外觀
在因特網上,您會發現很過網站都具有一致的外觀和風格:
* 每個頁面有相同的頭部
* 每個頁面有相同的底部
* 每個頁面有相同的樣式和布局
通過 Web Pages ,您能非常高效地做到這點。您可以把重復使用的內容塊(比如頁面頭部和底部)寫在一個單獨的文件中。
您還可以使用布局模板(布局文件)為站點的所有網頁定義一致的布局。
## Content Blocks(內容塊)
許多網站都有一些內容是被顯示在站點的每個頁面中(比如頁面頭部和底部)。
通過 Web Pages,您可以使用 **@RenderPage()** 方法從不同的文件導入內容。
內容塊(來自另一個文件)能被導入網頁中的任何地方。內容塊可以包含文本,標記和代碼,就像任何普通的網頁一樣。
將共同的頭部和底部寫成單獨的文件,這樣會幫您節省大量的工作。您不必在每個頁面中書寫相同的內容,當內容有變動時,您只要修改頭部或者底部文件,就可以看到站點中的每個頁面的相應內容都已更新。
以下顯示了它在代碼中是如何呈現的:
## 實例
```
<html>
<body>
@RenderPage("header.cshtml")
<h1>Hello Web Pages</h1>
<p>This is a paragraph</p>
@RenderPage("footer.cshtml")
</body>
</html>
```
[運行實例 ?](/try/showfile_c.php?filename=try_webpages_cs_002)
## Layout Page(布局頁)
在上一部分,您看到了,想在多個網頁中顯示相同內容是非常容易的。
另一種創建一致外觀的方法是使用布局頁。一個布局頁包含了網頁的結構,而不是內容。當一個網頁(內容頁)鏈接到布局頁,它會根據布局頁(模板)的結構進行顯示。
布局頁中使用 **@RenderBody()** 方法嵌入內容頁,除此之外,它與一個正常的網頁沒有什么差別。
每個內容頁都必須以**布局指令**開始。
以下顯示了它在代碼中是如何呈現的:
## 布局頁:
```
<html>
<body>
<p>This is header text</p>
@RenderBody()
<p>© 2012 W3CSchool. All rights reserved.</p>
</body>
</html>
```
## 任何網頁:
```
@{Layout="Layout.cshtml";}
<h1>Welcome to W3CSchool.cc</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 laborisnisi ut aliquip ex ea commodo consequat.
</p>
```
[運行實例 ?](/try/showfile_c.php?filename=try_webpages_cs_011)
## D.R.Y. - Don't Repeat Yourself(不要自我重復)
通過 Content Blocks(內容塊)和 Layout Pages(布局頁)這兩個 ASP.NET 工具,您可以讓您的 Web 應用程序顯示一致的外觀。
這兩個工具能幫您節省大量的工作,您不必再每個頁面上重復相同的信息。集中的標記、樣式和代碼讓您的 Web 應用程序更易于管理,更易于維護。
## 防止文件被瀏覽
在 ASP.NET 中,文件的名稱以下劃線開頭,可以防止這些文件在網上被瀏覽。
如果您不想讓您的內容塊或者布局頁被您的用戶看到,可以重命名這些文件:
_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";
}
```
- C# 基礎
- C# 簡介
- C# 環境
- C# 程序結構
- C# 基本語法
- C# 數據類型
- C# 類型轉換
- C# 變量
- C# 常量
- C# 運算符
- C# 判斷
- C# 循環
- C# 封裝
- C# 方法
- C# 可空類型(Nullable)
- C# 數組(Array)
- C# 字符串(String)
- C# 結構(Struct)
- C# 枚舉(Enum)
- C# 類(Class)
- C# 繼承
- C# 多態性
- C# 運算符重載
- C# 接口(Interface)
- C# 命名空間(Namespace)
- C# 預處理器指令
- C# 正則表達式
- C# 異常處理
- C# 文件的輸入與輸出
- C# 高級
- C# 特性(Attribute)
- C# 反射(Reflection)
- C# 屬性(Property)
- C# 索引器(Indexer)
- C# 委托(Delegate)
- C# 事件(Event)
- C# 集合(Collection)
- C# 泛型(Generic)
- C# 匿名方法
- C# 不安全代碼
- C# 多線程
- ASP.NET 簡介
- Web Pages 教程
- ASP.NET Web Pages - 教程
- ASP.NET Web Pages - 添加 Razor 代碼
- ASP.NET Web Pages - 頁面布局
- ASP.NET Web Pages - 文件夾
- ASP.NET Web Pages - 全局頁面
- ASP.NET Web Pages - HTML 表單
- ASP.NET Web Pages - 對象
- ASP.NET Web Pages - 文件
- ASP.NET Web Pages - 幫助器
- ASP.NET Web Pages - WebGrid 幫助器
- ASP.NET Web Pages - Chart 幫助器
- ASP.NET Web Pages - WebMail 幫助器
- ASP.NET Web Pages - PHP
- ASP.NET Web Pages - 發布網站
- Razor 教程
- ASP.NET Razor - 標記
- ASP.NET Razor - C# 和 VB 代碼語法
- ASP.NET Razor - C# 變量
- ASP.NET Razor - C# 循環和數組
- ASP.NET Razor - C# 邏輯條件
- ASP.NET Razor - VB 變量
- ASP.NET Razor - VB 循環和數組
- ASP.NET Razor - VB 邏輯條件
- MVC 教程
- ASP.NET MVC 教程
- ASP.NET MVC - Internet 應用程序
- ASP.NET MVC - 應用程序文件夾
- ASP.NET MVC - 樣式和布局
- ASP.NET MVC - 控制器
- ASP.NET MVC - 視圖
- ASP.NET MVC - SQL 數據庫
- ASP.NET MVC - 模型
- ASP.NET MVC - 安全
- ASP.NET MVC - HTML 幫助器
- ASP.NET MVC - 發布網站
- Web Forms 教程
- ASP.NET Web Forms - 教程
- ASP.NET Web Forms - HTML 頁面
- ASP.NET Web Forms - 服務器控件
- ASP.NET Web Forms - 事件
- ASP.NET Web Forms - HTML 表單
- ASP.NET Web Forms - 維持 ViewState
- ASP.NET Web Forms - TextBox 控件
- ASP.NET Web Forms - Button 控件
- ASP.NET Web Forms - 數據綁定
- ASP.NET Web Forms - ArrayList 對象
- ASP.NET Web Forms - Hashtable 對象
- ASP.NET Web Forms - SortedList 對象
- ASP.NET Web Forms - XML 文件
- ASP.NET Web Forms - Repeater 控件
- ASP.NET Web Forms - DataList 控件
- ASP.NET Web Forms - 數據庫連接
- ASP.NET Web Forms - 母版頁
- ASP.NET Web Forms - 導航
- Web Pages 參考手冊
- ASP.NET Web Pages - 類
- ASP.NET Web Pages - WebSecurity 對象
- ASP.NET Web Pages - Database 對象
- ASP.NET Web Pages - WebMail 對象
- ASP.NET Web Pages - 更多幫助器
- MVC - 參考手冊
- Web Forms 參考手冊
- ASP.NET Web Forms - HTML 服務器控件
- ASP.NET Web Forms - Web 服務器控件
- ASP.NET Web Forms - Validation 服務器控件
- 免責聲明