У меня есть требование, в котором я хочу установить разные главные страницы для одной и той же страницы в зависимости от идентификатора пользователя (т.е. для одного пользователя он должен установить одну главную страницу, а для другого пользователя он должен установить другую главную) .Можно ли установить разные мастер-страницы страницы для любой страницы динамически? Пожалуйста, помогите ...
Как установить главную страницу динамически?
Ответы (3)
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/MyMaster.master";
}
Объяснение: Вы можете динамически прикрепить эталонную страницу к странице с содержанием. Поскольку главная страница и страница содержимого объединяются на этапе инициализации обработки страницы, главная страница должна быть назначена до этого. Как правило, вы назначаете главную страницу динамически на этапе PreInit.
Обратите внимание на эту статью в MSDN:
http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/NewMaster.master";
}
Вы можете, установив MasterPageFile свойство Страницы. Однако это вызовет InvalidOperationException
, если он вызывается после PreInit. Взгляните на жизненный цикл страницы ASP.NET
Свойство MasterPageFile можно установить только в событии PreInit; попытка установить свойство MasterPageFile после события PreInit вызовет исключение InvalidOperationException. Если свойство MasterPageFile недопустимо, на более позднем этапе жизненного цикла страницы создается исключение типа HttpException, но при установке свойства в событии PreInit исключение не возникает.