Как получить доступ к свойствам со страницы в ContentPlaceholder на моей MasterPage

У меня есть следующая среда:

  • мастер-страница с 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
    }
}

Очевидно, что это не сработает, но как я могу этого добиться?

Я знаю альтернативу: вызовите метод из masterPage в contentPage с fooProperty в качестве параметра, но в этом случае я бы предпочел иметь систему вытягивания...


person Community    schedule 10.02.2011    source источник
comment
@abatishchev: спасибо за редактирование, но в удалении пространства имен из System.Web.UI.MasterPage не было необходимости... я включаю пространства имен для ясности! Кстати. почему бы не указать page в верхнем регистре P?? :)   -  person    schedule 10.02.2011


Ответы (1)


Вы можете использовать атрибут MasterType на главной странице.

См.: http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

person Madhur Ahuja    schedule 10.02.2011
comment
-, и как это связано с вопросом?? - person ; 10.02.2011
comment
@Andreas: Когда вы используете директиву @ MasterType, такую ​​как в примере, вы можете ссылаться на членов на главной странице, как в следующем примере: CompanyName.Text = Master.CompanyName; - person Madhur Ahuja; 10.02.2011
comment
Я упомянул в своем вопросе: я не хочу использовать системы push! проблема в том, что я хочу получить доступ к свойствам contentPage из masterPage (в противоположном направлении!) - person ; 10.02.2011