Как установить мастер-страницу динамически?


У меня есть требование, в котором я хочу установить разные мастер-страницы для одной и той же страницы в зависимости от идентификатора пользователя (т.е. для одного пользователя он должен установить одну мастер-страницу, а для другого пользователя - другой мастер). Можем ли мы установить разные мастер-страницы для любой страницы динамически? Пожалуйста, помогите ...

 Rango07 июн. 2012 г., 13:35
возможный дубликатSetting a master page's master page programmatically

Ответы на вопрос(3)

Обратите внимание на эту статью на MSDN:

http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "~/NewMaster.master";
}
Решение Вопроса
void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "~/MyMaster.master";
}

Explanation: Вы можете прикрепить главную страницу динамически к контентной странице. Поскольку главная страница и страница содержимого объединяются на этапе инициализации обработки страницы, главная страница должна быть назначена до этого. Как правило, вы назначаете главную страницу динамически на этапе PreInit.

Вы можете, установивMasterPageFile свойство страницы. Тем не менее, это броситInvalidOperationException если это не называется послеPreInit событие. Посмотрите наASP.NET Page Жизненный цикл

The MasterPageFile property can be set only in the PreInit event; attempting to set the MasterPageFile property after the PreInit event will throw an InvalidOperationException exception. If the MasterPageFile property is not valid, an exception of type HttpException is thrown later in the page life cycle, but no exception is thrown when the property is set in the PreInit event.

Ваш ответ на вопрос