The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

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

注意事項: 

  • 因為 C# 是單一繼承的語言(VB.NET 應該也一樣),所以如果你的 ASP.NET 頁面是用 Code Behind 的方式的話:

    [code:c#]

    public partial class _Default : System.Web.UI.Page
    {
        ......
    }

    [/code]

    必須要改成以下這樣才能真的繼承你在 web.config 中設定的 BasePage用:

    [code:c#]

    public partial class _Default
    {
        ......
    }

    [/code]

    如果你用 Inline 模式寫程式的話,就沒有這個問題,除非你有在 <%@ Page 定義 Inherits 屬性。