簡體   English   中英

將ASP Web表單轉換為用戶控件

[英]Converting ASP Web Form to User Control

我有一個稱為Search.aspx的Web窗體頁面。 我需要在其他地方渲染該表單,以便將Web表單轉換為用戶控件,但是我的Search.aspx.cs繼承了一個自定義Page類,該類繼承了System.Web.UI.Page。 由於IC#不支持多重繼承,因此我無法同時繼承我的用戶控件搜索類(Search.ascx.cs)類中的自定義Page類和System.Web.UI.UserControl類。

我想知道是否有辦法不必為UserControl創建第二個自定義頁面類。

提前致謝。

從繼承的自定義Page類中,搜索表單需要什么? 您可以設計搜索表單,使其僅是一種輸入形式和公開輸入值的公共屬性。 如果沒有更多有關自定義Page類提供的值的信息,很難說出最佳答案是什么。 通常,控件不需要太多了解其父頁面。

取決於架構的其余部分。

最簡單的方法是將您的繼承更改為UserControl。 如果自定義Page基類中缺少某些方法,則可以在UserControl自定義基類中復制它們。

如果要使其保持DRY,請將這些自定義方法重構為一個類,該類將這些方法提供給任何Page或UserControl類。 您將使用組合而不是繼承,如果繼承樹很深,這可能是更好的選擇。

另一個選擇是從您的自定義Page類提取接口。 我認為這不是一個好主意 首先,您很可能不需要將Pages和UserControl完全相同(多態)。 其次,您仍然必須在兩個自定義類中都實現該接口,因此最終無論如何都會破壞DRY。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM