#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) это. Мастер). Метод()