0

我正在使用使用母版页和嵌套母版页的第三方 asp.net 应用程序。我的需要是为每个页面(.aspx)动态设置母版页文件。默认情况下,应用程序在每个页面的强类型 @Page 指令中设置母版页文件。我不想更改每个页面(超过 50 页)上的强类型指令,因为我很懒,我想尽量减少与未来升级的冲突。

我的解决方案是使用基本母版页类并像这样覆盖 OnPreInt 事件:

protected override void OnPreInit(EventArgs e)
    {
    this.MasterPageFile = "~/MasterPages/MyMaster.master";
    }

一切都很完美。我的问题是:这是一个坏主意,为什么?这似乎太容易成为现实。

谢谢。

4

3 回答 3

0

它使代码/逻辑更加复杂。例如,可能在您之后继续从事该项目的其他人可能无法快速理解它。恕我直言

于 2010-08-17T20:48:52.060 回答
0

这应该没有问题。MasterPage 直到之后才应用于控件集合OnPreInit。我看到的唯一可能的问题是

1) 你的开发者必须记住这个转换发生了(技术债)

2)每次请求页面时,您都必须加载两个 MasterPage 类(性能问题)

于 2010-08-17T20:51:40.583 回答
0

这是一个非常好的主意。母版页的一半是您可以做到这一点。

关于它们的一件烦人的事情是,你不能让它们开始引用一个不存在的文件(当你总是要以编程方式决定主文件时,这会更清楚),所以如果我要总是设置我喜欢让它从一个页面开始,该页面只显示“虚拟母版页,这将以编程方式从该页面移出”,因此很明显,任何追踪该页面使用的母版页的人都会发生这种情况。

于 2010-08-17T21:00:04.330 回答