我目前在以下层次结构中有三个主页和内容页:
<div>
围绕它们。两者都引用根级母版页。称这些为“B1”和“B2”。基本上我有:
Cn =&gt; B1 =&gt; A
Cm =&gt; B2 =&gt; A
此层次结构正常。
我想要做的是在内容页面和兄弟主页之间添加一个新级别到此层次结构(新的母版页)。基本上是这样的:
对此的挑战是,我正在一个相当复杂的产品的范围内工作,我无法改变原来的两个兄弟的主页(B1和B2)或内容页面(C)以任何有意义的方式。
我想:
Cn =&gt; D =&gt; B1 =&gt; A
Cm =&gt; D =&gt; B2 =&gt; A
Ck =&gt; D =&gt; B3 =&gt; A
基本上,D应该将所有内容“传递”到它选择的任何B级母版页。我不能把这个逻辑放在C级页面中。
这可能吗?
答案 0 :(得分:0)
MasterPage没有Page_PreInit事件,因此对MasterPage层次结构(嵌套或其他)的所有更改都必须来自内容页面。
因此,如果您可以修改内容页面,请添加:
void Page_PreInit(object sender, EventArgs e)
{
//if (someCondition)
this.Master.MasterPageFile = "~/Path/B1.master";
//else if (otherCondition)
this.Master.MasterPageFile = "~/Path/B2.master";
//etc.
}