Dynamically Loading Master Pages in ASP.Net: Part 2

Introduction

In Part 1 of this article, we have discussed how to load Master Pages Dynamically for one content page but in this part we will discuss how to load for multiple content pages even. Please do read previous part then come to this otherwise you can't understand completely. The easiest way to apply the same logic to multiple content pages is to create a new base Page class. The example given below contains a new Base Page class namedDynamicMasterPage. Now we have to add the file given below in our application's App_Code folder. If you create class file at very first time then it will prompt you to create App_Code Folder to place that class file.

DynamicMasterPage.vb Class File Code

Imports Microsoft.VisualBasic
Public Class DynamicMasterPage
    Inherits Page
    Protected Overrides Sub OnPreInit(ByVal e As EventArgs)
        
Me.MasterPageFile = CType(Context.Profile("MasterPageFile"),String)
        
MyBase.OnPreInit(e)
    
End Sub
End Class

Web.config File Code

<?xml version="1.0"?>
<
configuration>
                <
system.web>
                                <
compilation debug="true"targetFramework="4.0"/>
                </
system.web>
  <system.web>
    <pages pageBaseType="DynamicMasterPage" />
    <profile>
      <
properties>
        <
add
          name="MasterPageFile"
          defaultValue="DynamicMaster1.master" />
      </
properties>
    </
profile>
  </
system.web>
</configuration>

If you register the DynamicMasterPage class as the base Pageclass, every page in our application automatically inherits from the new base class. Every page inherits the new OnPreInit() method and every page loads a Master Page dynamically. This is pretty cool and used on maximum websites today.

Comments

Popular posts from this blog

Customize User's Profile in ASP.NET Identity System

Lambda two tables and three tables inner join code samples