Asp.net 母版页是否可以引用具有相同内容和内容占位符标记的另一母版页? 当前设置
我目前在以下层次结构中有三个母版页和内容页:Asp.net 母版页是否可以引用具有相同内容和内容占位符标记的另一母版页? 当前设置,asp.net,master-pages,asp.net-2.0,Asp.net,Master Pages,Asp.net 2.0,我目前在以下层次结构中有三个母版页和内容页: 一个显示最终结果的根级母版页。称之为“A” 两个兄弟页面不相互引用,但包含所有相同的contentplaceholder元素,只是顺序不同,周围有不同的。两者都引用根级母版页。将其称为“B1”和“B2” 引用上述一个或另一个同级母版页(并非两者)的多个内容页。把这些叫做“C1”到“C-随便什么” 基本上,我有: Cn=>B1=>A Cm=>B2=>A 这种层次结构运作良好 所需设置 我想做的是在内容页和兄弟母版页之间的层次结构(新母版页)中添加一
- 一个显示最终结果的根级母版页。称之为“A”
- 两个兄弟页面不相互引用,但包含所有相同的contentplaceholder元素,只是顺序不同,周围有不同的
。两者都引用根级母版页。将其称为“B1”和“B2” - 引用上述一个或另一个同级母版页(并非两者)的多个内容页。把这些叫做“C1”到“C-随便什么”
- 一个显示最终结果的根级母版页
- 两个同级页面加上第三个同级页面。叫它B3
- 一个新的中间母版页,它动态地“选择”一个同级母版页。期望的行为是将C给出的内容直接传递给Bn,而不进行修改。D主动做的唯一事情就是选择哪个Bn。将此新母版页称为D
- 多个内容页引用新的中间母版页而不是旧的同级页
- 所有B级页面都有相同的内容/内容占位符标记,只是顺序和样式不同而已
- 只要不需要修改C或B,D可以像它必须的那样复杂
- 我正在使用ASP.NET2.0
这可能吗?母版页没有Page_PreInit事件,因此母版页层次结构的所有更改(嵌套或其他)都必须源自内容页 因此,如果可以修改内容页,请添加:
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.
}
不确定我是否有那么多的控制权。。。我来试一试。如果您对页面本身没有太多的控制权,您还可以创建一个与内容页继承的任何类具有相同名称/命名空间的分部类,并将上面的代码添加到分部类中。(这假设内容页继承的类尚未定义Page_Init,并且未密封。)我没有足够的控制权来完全执行您提到的操作,但我在产品范围内发现了另一种机制,允许我以不同的方式执行我想要的操作。不管怎样,你的建议在总体理解方面是有帮助的。谢谢