ascx和aspx的基类

时间:2014-12-29 11:28:30

标签: c# asp.net .net

我有一个实体配置文件,我需要从我网站上的所有aspx和ascx页面访问。我创建了一个类" Context"它具有profile属性并继承自System.Web.UI.Page。这对于aspx页面非常有用。

我需要将同一个父项应用于我的应用程序中的用户控件,我现在唯一的选择是创建另一个Context类" UserControlContext"继承自System.Web.UI.UserControls并让用户控制继承它。

我的问题是,这样我可以复制两个上下文页面的代码,如何使用一个Context类让ascx和aspx继承? Context类是什么类型的?

2 个答案:

答案 0 :(得分:1)

不,你不能。您的控件可以是PageControl(或UserControl)。他们不能共享相同的基类。

我建议将重复的代码移到另一个由PageControl调用的类中。如果要在该类中使用,可以使用基类Control,因此代码尽可能通用。

答案 1 :(得分:1)

您只能从C#中的一个类继承,因此您无法将这些功能放入两者的公共基类中(因为它们已经从System.Web.UI.PageSystem.Web.UI.UserControl继承)。您可以做的是将常用功能移到其他类,然后在ContextUserControlContext类中使用该类。您不会直接从新类派生,但您可以将其封装在ContextUserControlContext类中,并从这些类中调用其方法。

当涉及到可以将代码移到另一个类的程度时,这取决于您的代码。