ASP.NET嵌套的高级页面,如何在aspx文件的首页设置内容?

时间:2010-04-29 12:38:40

标签: asp.net master-pages nested

我有一些来自CMS的内容,我需要转移到原始的asp.net页面。由于模板是嵌套的,我想我可以使用嵌套的主页来实现它,但我发现我无法在深层子页面的顶级母版页上设置值。

这是一个示例。我有几个嵌套的masterpages与contentplaceholders:

  • top master(with contentPlaceHolder1)
  • 嵌套主服务器,依赖于顶级主服务器(使用contentPlaceHolder2)
  • aspx页面,依赖于嵌套的master,定义contentPlaceHolder1和2的内容

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

如何在aspx页面中设置要在顶级母版中呈现的值?

2 个答案:

答案 0 :(得分:1)

通常您必须执行以下操作:

  1. 在您的母版页上设置公共属性
  2. 将@MasterPage声明添加到您要在
  3. 中访问该属性的任何内容页面的顶部
  4. 访问Master.YourPageProperty = "value";
  5. 等媒体资源

    对于嵌套的主页,您还必须使用上面相同的方法设置传递公共属性,但是在嵌套的母版页中执行它(即定义嵌套的母版页主页并设置刚设置的公共属性传递给嵌套主服务器的值到顶部主服务器。)

    尝试查看本文以强化我所提到的想法:

答案 1 :(得分:0)

我通常会将所有.aspx页面从基页继承,并在此页面上为我要共享的任何数据设置属性。然后,在您的顶级母版页上,您可以将当前页面转换为键入基页,然后可以访问所有数据。

我经常将基页作为属性公开在我的母版页上,这样我就可以进行软转换并进行空检查,如果我有任何不从我的基页继承的页面正在使用母版页。