如何在MasterPage中的ContentPlaceholder中访问页面中的属性

时间:2011-02-10 10:42:29

标签: c# .net asp.net webforms master-pages

我有以下环境:

  • 带有contentPlacholder的母版页
  • 使用此母版页并实现基类(fooPage
  • 的多个页面
  • fooPage有一定的属性(fooProperty

现在我想做一些像

这样的事情
public partial class FooMaster : System.Web.UI.MasterPage
{
    // this is originally from the designer-file
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder;

    protected override void OnPreRender(System.EventArgs e)
    {
        var fooPageInstance = this.ContentPlaceHolder as fooPage;
        var fooPropertyInstance = fooPageInstance.fooProperty;
        // TODO do something with the property
    }
}

显然这不起作用 - 但我怎样才能做到这一点?

我知道另一种方法:使用fooProperty作为参数从contentPage中的masterPage调用一个方法 - 但我想在这种情况下使用一个pull系统...

2 个答案:

答案 0 :(得分:0)

您可以在母版页上使用MasterType属性。

请参阅:http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

答案 1 :(得分:0)

public partial class FooMaster : System.Web.UI.MasterPage
{
    // this is originally from the designer-file
    protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder;

    protected override void OnPreRender(System.EventArgs e)
    {
        var fooPageInstance = this.ContentPlaceHolder.BindingContainer as FooPage;
        var fooPropertyInstance = fooPageInstance.fooProperty;
        // TODO do something with the property
    }
}