以编程方式添加母版页



首先,我知道这不是一件正常的事情,所以如果不可能,请告诉我。

我有一堆页面(100+),它们都被设计成包含在一个iframe中。最近,我决定放弃这种做法,使用母版页对曾经包含iframe的页面进行一些格式化。然而,为了做到这一点,框架内的页面现在将成为导航到的页面。我需要能够做的是将这个新的母版页应用于以前没有母版页的页面,我希望在不更改所有其他页面标记的情况下进行此操作。所有这些页面都继承自一个父类,如果可能的话,该父类可以用来实现这一点。有必要在这个解决方案中不使用iframe,因为它们的兼容性是我试图解决的问题的一部分。感谢您提供的任何帮助/想法。

编辑

这是我在尝试评论建议的方式时遇到的错误:

内容控件必须是内容页或引用母版页的嵌套母版页中的顶级控件。

应该是非常可能的。我记得,你可以让你的基类在OnPreInit事件中设置自己的MasterPage:

this.MasterPage = "~/SpecificMasterPage.aspx";

对意见的回应

这使事情变得复杂。以下是您可以尝试的方法,但我不知道它是否有效:尝试创建常规页面作为"母版"页面,并使用Page.LoadControl方法将其他页面加载为控件。我不知道是否可以用这种方式加载整个页面,即使是这样,这充其量也很麻烦,因为您将在页面正文中生成新的<html><head><body>标记。

因此,您最好的选择可能是将所有页面转换为使用MasterPage或控件。如果你很聪明,你可能会写一个小程序,可以自动对你的所有页面执行此操作。

最新更新