ASP.NET Вызов метода в (ASPX) из UserControl (ASCX)?

#asp.net #call #master-pages

#asp.net #вызов #мастер-страницы

Вопрос:

есть Default.aspx

в его коде есть метод: public void DoSomething(){}

Default.aspx У UserControl.ascx

В коде my UserControl.ascx я хотел бы вызвать my DoSomething() from Default.aspx , но это не работает:

 Default defaultPage = new Default();
defaultPage.DoSomething();
  

Как я могу этого добиться?
( Default.aspx это также запуск главной страницы)

Ответ №1:

Default defaultPage = new Default(); создаст новый экземпляр вашей страницы, а это не то, что вы хотите.

Из вашего usercontrol вы могли бы сделать что-то вроде этого:

 ((Default)Page).DoSomething();
  

Или, чтобы быть в безопасности и убедиться, что страница имеет тип по умолчанию, поскольку пользовательский элемент управления может существовать на многих разных страницах (именно поэтому это может быть не лучшей идеей).

 Default p = Page as Default;
if( p != null )
    p.DoSomething();
  

Комментарии:

1. спасибо, и не могли бы вы рассказать мне, как я мог бы вызвать метод с ГЛАВНОЙ страницы. Сайт в примере по умолчанию.aspx?

2. Аналогичный синтаксис ((MasterType) это. Мастер). Метод()