2011-08-13 29 views

回答

8

爲什麼不讓兩個頁面從同一個類繼承?

public class MyPage : System.Web.UI.Page 
{ 
    // common logic that both pages should have 

    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 
} 

public partial class PageA : MyPage 
{ 
    // specific logic for page A 
} 

public partial class PageB : MyPage 
{ 
    // specific logic for page B 
} 
3

Yes。這在技術上是可行的,但它不是使用ASP.NET的受支持方式,並且可能會有困難。

您應該使用User ControlsAppCode來代替。

+2

或者是一個分層架構,它將每個webform中使用的通用邏輯委託給適當的抽象。 –

2

我會建議避免這樣的設計,所以每個頁面應該有自己的隱藏文件的代碼。 也看看下面ASP.NET功能whcih可以簡化常見的佈局和行爲的共享整個網頁:

  • Master pages(的.master),它具有相同的佈局基本上多個頁面可以使用一個共享的母版頁它提供了邏輯背後的通用佈局和支持代碼。此外,您可以在運行時切換主頁面,並且主頁面可以嵌套,因此主頁面可以放置在其他主頁面內,這爲您設計Web應用程序佈局和分擔責任提供了很大的自由度和靈活性。
  • User Controls(.ascx),它值得關注,並通過一組控件拆分頁面,例如,它可以是LoginControl.ascx,AdControl.ascx,SearhcControl.ascx,因此您可以保持頁面的代碼清潔每個控件都提供了特定的功能和自己的佈局。
  • 繼承,所以基本設置頁面具有從Page類繼承相同的基類(我不建議使用這種方法大規模,一個基本頁面就足夠了)

    您可以使用其他共同開發技術像依賴注入在多個頁面之間共享代碼,這取決於在引擎蓋下考慮的特定案例和業務目標。

相關問題