我正在使用ASP.NET 4.5开发ASP.NET Webforms网站。 我有,我用我的方式母版页,但我想要的页面类从另一个SitePage
类继承,为此,代码如下:如何防止在使用自定义基页面类时覆盖Page_Load方法
public abstract class SitePage : Page
{
protected void Page_Load(object sender, EventArgs e)
{
// common logic here
Page_LoadImpl(sender, e);
}
protected abstract void Page_LoadImpl(object sender, EventArgs e);
}
页面的类会再看看这样的:
public partial class MyPage: SitePage
{
protected override void Page_LoadImpl(object sender, EventArgs e)
{
//page specific logic here
}
}
我来自Java的背景,我如何使我的SitePage Page_Load
方法最终,不可重写?我知道我可以使用嵌套母版页来实现相同的功能,但我不想重新定义页面的内容。 谢谢
好吧,我明白了,但是我可以在MyPage类中放入一个 'protected void Page_Load(object sender,EventArgs e)' 。我想这被视为默认的新方法,从BasePage中隐藏一个,正确的?在那种情况下,我没有办法阻止这种情况发生,对吧? – kfc 2013-04-22 10:23:39
这是100%正确!编译器会发出警告。此警告可以通过在第二个Page_Load上使用关键字“new”来抑制。 – 2013-04-22 11:21:31