2011-03-16 21 views
1

Ayup如何从一个类库继承Page类

我可能会问一个愚蠢的问题,但我有一位客户,对他们来说,我需要建立许多网站(10+)(asp.net 3.5),这每个网站上的所有网页都会有相同的代码隐藏,但这些网站将在不同的区域启动,并且在遵循相同模板的情况下,会有不同的内容。

我已经建立并启动了网站1,而网站2,3几乎是直播的,但是对我而言,由于所有的网站基本上都是相同的,因此代码将会变得更加复杂将被复制,所以如果我需要在一个站点上修复错误,我需要在所有网站上进行修复(这将变得复杂)。

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

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

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

这是隐约可能吗?如果没有人有任何关于如何从单个代码库管理这么多网站的杀手锏的建议?

干杯 牛逼

回答

0

当然,你可以做到这一点。但是你需要确保你的基类继承自System.Web.Page。

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

public class MyBasePage: System.Web.Page 
{ 

} 

然后你就可以指定为所有其他网页上的基类。

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

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

+0

感谢您的回应,澄清我正在计划类似下面的每个页面类型不同的类(每个页面不是一个代码库),所有页面将不同(在每个网站上说20页),但所有网站将有20个不同的网页:名称空间WebPagesClass {公共部分类_Default:System.Web.UI.Page {}} – 2011-03-16 17:00:01

0

有可能将网站之间的所有区别转换为ASP.Net主题或配置文件?听起来像是一个更好的方法对我来说