﻿# ASP.NET 2.0 的 MasterPage 可設定預設內容

我們都知道可以在 MasterPage 中可以設定 ContentPlaceHolder，但通常我們設定在 ContentPlaceHolder 這的標籤裡面都不會放任何資料，不過事實上裡面是可以放一些預設的內容的，當內容頁(Content Page)沒有使用到這個 ContentPlaceHolderID 時，就會直接用 MasterPage 中定義的預設內容來輸出。

> ```html
> <asp:ContentPlaceHolder ID="MenuPlaceHolder" runat="server">
> 
>     <asp:Label
>            runat="server"
>            ID="Label1"
>            Text="This is default content." />
> 
> </asp:ContentPlaceHolder>
> ```

  
基本上，你在 ContentPlaceHolder 中的所放置的內容就跟一般的用法一模一樣，也可以設定控制項中的事件，只是當內容頁有設定這個 ContentPlaceHolderID 時，此 MasterPage 的預設內容中的所有控制項或內容都會被自動忽略，如果你要在 Code Behind 中有寫相關程式碼的話，都要特別判斷該物件是否為 null ，否則就會發生 Exception 。

> ```csharp
> if (Label1 != null)
> {
>     Label1.PreRender += new EventHandler(Label1_PreRender);
> }
> ```
