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