Olá pessoal, escrevo este comentário / mini-artigo com o objetivo de mostrar como alterar de MasterPage em tempo de execução. Isso porque às vezes preciso dessa funcionalidade dependendo da página ou usuário logado.

         Particularmente, a MasterPage tem o mesmo conceito de “include”  para quem programava no ASP legado 3.0; lógico que com algumas mudanças. Portanto com o novo conceito, o mesmo é indicado no topo da página “.aspx”.

            Para a novidade, necessariamente preciso alterar essa masterpage ou o arquivo da masterpage dinamicamente, por exemplo: depois que o usuário logou no sistema, aparece uma outra masterpage que possui alguns atributos a mais. Para fazer esta “arte manha” use o código de referência 1.1.

 

 

protected void Page_PreInit(object sender, EventArgs e){

             this.MasterPageFile = "~/OutraMasterPage.master";

}

 

Referência: 1.1




            Lembre-se que a outra masterpage deve estar em um local que indique no caminho do arquivo; veja que coloquei apenas o “~” que significa o caminho da aplicação barra o arquivo MasterPage.

Espero ter ajudado.