Я делаю так.
1. Создаю базовый класс (пусть называется PrntPage) для страниц, использующих матстерпейдж
2. Соответственно, наследую все такие страницы от PrntPage, а не от System.Web.UI.Page
3. В базовом классе реализовываем заполнение матстерпейдж
Пример
public class PrntPage: System.Web.UI.Page
{
protected PrntPage()
{
Load += new EventHandler(PrntPage_Load);
}
void PrntPage_Load(object sender, EventArgs e)
{
//здесь заполняем наши контролы
Control ctrl = Master.FindControl("masterpagecontrolID");// итд.
}
Таким образом, избавляем себя от заполнения контролов на каждой странице