如何从类库继承页面类

时间:2011-03-16 16:45:28

标签: c# asp.net dll code-behind

Ayup

我可能会问一个愚蠢的问题,但我有一个客户,我需要建立许多网站(10+)(asp.net 3.5),每个网站上的所有页面将具有相同的代码隐藏,但是网站将在不同地区推出,同时遵循相同的模板,将有不同的内容。

我已经建立并启动了网站1,以及网站2,3和& 4几乎是活的,但我发现由于所有站点基本相同,代码将变得更加复杂,因为它将被复制,所以如果我需要在一个站点上进行错误修复,我我需要在所有网站上进行修复(这会变得复杂。)

我想知道是否有可能以某种方式创建所有当前aspx.cs文件的类库,在每个网站中引用此dll,然后将这些类继承到.aspx.cs文件中。因此,每个站点中的default.aspx仍然具有CodeFile“Default.aspx.cs”,但Default.aspx.cs将从dll继承相应的类:

using WebPagesClass;
public partial class _Default : WebPagesClass._Default
{ }

这样做的原因是,如果我需要更改特定网站上的任何代码(例如,对于语言的微小更改),我可以覆盖页面功能并更改所需的部件。对于所有其他没有cha的页面,我只能从一个网站上复制。

这有点模糊吗?如果不是,任何人都可以获得如何从单个代码库管理这么多网站的任何杀手级建议?

干杯 Ť

2 个答案:

答案 0 :(得分:0)

当然可以这样做。但是您需要确保您的基类继承自System.Web.Page。

因此,创建一个库,添加必要的引用(System.Web等)并创建基类:

public class MyBasePage: System.Web.Page
{

}

然后,您可以将其指定为所有其他页面的基类。

至于使用这个单独的类作为所有aspx页面的直接代码隐藏类,这可能会变得棘手,因为页面可能会有各自的asp.net控件,因此代码隐藏类每个页面确实会略有不同。

我假设你想要做这项工作,因为页面中有一堆类似的代码,但我想也有一些特定的代码/控制声明。所以我会创建基类并将公共代码放在那里,然后继承该类...

答案 1 :(得分:0)

可以将站点之间的所有差异移动到ASP.Net主题或配置文件中吗?对我来说听起来更好的方法