У меня есть следующий фрагмент кода:
public abstract class BasePage : Page
{
protected void Page_PreInit(object sender, EventArgs e)
{
if (IsPostBack)
return;
var section = ConfigurationManager.GetSection("UrlRewriter/PlainRules");
if (section == null)
SetMaster("~/App_Shared/Master/BaseRegular.Master");
else
SetMaster("~/App_Shared/Master/BaseRewritable.Master");
}
protected void SetMaster(string value)
{
MasterPage master = Master;
while (master != null)
{
if (master is SharedMaster)
{
master.MasterPageFile = value;
break;
}
master = master.Master;
}
}
}
Это прекрасно работает при динамическом изменении моих главных страниц, но я бы хотел сделать это непосредственно с SharedMaster
, а не с каждой отдельной моей страницы.
Page_PreInit никогда не срабатывает, если размещается на главной странице, так как я могу это сделать?