2010-04-29 48 views
2

我有一些内容来自CMS,我需要移动到原始的asp.net页面。由于模板是嵌套的,我想我可以使用嵌套的主页面来实现它,但是我发现我无法从深层子页面设置顶层主页面上的值。ASP.NET嵌套主页,如何从aspx文件设置首页的内容?

下面是一个示例。我有contentplaceholders几个嵌套masterpages:

  • 顶部主站(具有contentPlaceHolder1)
  • 嵌套母,取决于顶部主站(具有contentPlaceHolder2)
  • aspx页面,依赖于嵌套母,限定含量为contentPlaceHolder1和2

问题是,asp.net不允许我在content页面中定义contentPlaceHolder1的值,它应该在嵌套master中定义。但重点是客户端页面知道这个值,而不是模板主页(例如,页面知道它必须在顶部显示的图形,但图形的占位符是顶层主控)。

如何在aspx页面中设置值以便在顶层主页中呈现?

回答

1

通常情况下,你必须做到以下几点:

  1. 设置你的母版页
  2. 上的公用属性的@MasterPage声明添加到您要访问属性中的任何内容页面的顶部
  3. 访问像Master.YourPageProperty = "value";

属性在嵌套masterpages的情况下,你还必须设置直通使用相同的满足公共属性但是在你的嵌套母版页中做这件事(即定义嵌套母版页母版页,并设置虚拟公共属性,只是将传递给嵌套母版的值设置为最高版母版)。

试着看一下这篇文章,以加强我已经触及的想法:

+3

我喜欢的想法传递特性。事实证明,你也可以在嵌套的master中定义一种类似的传递contentPlaceHolders,如下所示: 2010-04-29 13:47:30

0

我通常会让所有的.aspx页面从基本页面继承,并且在此页面上,我设置了要共享的任何数据的属性。然后,在顶级主页上,您可以投射当前页面来输入basepage,然后访问所有数据。

我通常在我的母版页上公开基页作为属性,这样我可以做一个软转换,并做空检查,如果我有任何情况下,不从我的基页继承的页面正在使用主页面。