Переопределение модуля мастер-страницы - PullRequest
0 голосов
/ 06 апреля 2009

У меня есть мастер-страница, которая устанавливается через HTTPModule на PreInit (). СЧАСТЛИВОЕ ВРЕМЯ! Проблема в том, что мне нужно переопределить значение masterpagefile на нескольких страницах из-за проблемы макета. Кто-нибудь знает лучший способ?

Я попытался добавить Page_Preinit на мою страницу, но он выполняется перед PreInit () в моем модуле, поэтому он в итоге сбрасывается там. Я думаю, может быть, мне следует обновить контекстную переменную на моей странице (что-то вроде masterSetAtPage, из которой я мог бы разветвляться в моем модуле) ... какие-нибудь мысли по этому поводу?

Я работаю в VB.Net, но пример C # тоже подойдет.

1 Ответ

1 голос
/ 07 апреля 2009

Предположительно, ваш текущий код немного похож на код, описанный здесь ...

http://www.odetocode.com/articles/450.aspx

Если это так, то вы можете изменить свой код, который подключает PreInit, чтобы он выглядел примерно так ...

if (page != null && String.IsNullOrEmpty(page.MasterPageFile))
{
    page.MasterPageFile = "~/Master1.master";
}

и тогда любая страница, которая использует свою собственную директиву страницы для установки файла мастер-страницы, не будет подключена к главной странице по умолчанию.

Если вам нужно сделать это программно, то этот код ...

protected override void OnPreInit(EventArgs e)
{
    base.OnPreInit(e);
    this.MasterPageFile = "cheese.master";
}

... в коде вашей Страницы все получится. Очевидно, этот код будет добавлен только на страницы, где требуется специальное поведение.

...