以编程方式添加母版页

时间:2012-02-28 15:35:05

标签: asp.net master-pages

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

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

修改

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

  

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

1 个答案:

答案 0 :(得分:2)

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

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

对评论的回应

这使事情变得复杂。这是你可以尝试的东西,但我不知道它是否会起作用:尝试创建常规页面作为“主”页面,并使用Page.LoadControl方法加载其他页面,就像它们是控件一样。我不知道是否可以通过这种方式加载整个页面,即使它们最多也是hacky,因为您将生成新的<html><head><body>页面正文中的标签。

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