﻿# ASP.NET 如何設定全站共用的 BasePage 類別

開發一個網站時，難免會有哪種每一個都有的功能、變數（例如：頁面的權限控管判斷），通常我們會寫一支 BasePage 類別，並讓網站中的頁面類別繼承這個 BasePage 類別用以簡化程式碼的數量，但如果你很多頁都要做繼承的話，你可以用以下這個方法直接定義在 web.config 裡即可，就不用每一頁都去修改 Code Behind 的程式碼了。

只要在 web.config 設定檔內的 <pages> 裡即可宣告全站共用的 BasePage 類別，包括 BaseUserControl 也可以在這裡定義！

> <pages pageBaseType="BasePage" userControlBaseType="BaseUserControl">  
>   
> ......  
>   
> </pages>

MSDN2上的詳細說明：[http://msdn2.microsoft.com/zh-tw/library/950xf363(VS.80).aspx](http://msdn2.microsoft.com/zh-tw/library/950xf363\(VS.80\).aspx)

**注意事項：** 

-   因為 C# 是單一繼承的語言（VB.NET 應該也一樣），所以如果你的 ASP.NET 頁面是用 Code Behind 的方式的話：
    
    ```csharp
    public partial class _Default : System.Web.UI.Page
    {
        ......
    }
    ```
    
    必須要改成以下這樣才能真的繼承你在 web.config 中設定的 BasePage用：
    
    ```csharp
    public partial class _Default
    {
        ......
    }
    ```
    
    如果你用 Inline 模式寫程式的話，就沒有這個問題，除非你有在 <%@ Page 定義 Inherits 屬性。
