An Introduction to Master Pages

.NET Master Pages

Microsoft .NET 2.0 Master Pages

As part of Microsoft's drive toward web 2.0 they introduced a web site development technology referred to as Master Pages. Master Pages allow web developers and web designers to separate elements of a web page into individual pages or a single page that is reused through out an entire site. This form of development has been around for years in the form of includes. But Master Pages take the classic include process one step further.

The WSI site you are currently viewing utilizes Master Pages to provide our web designers and web developers one file that contains all of the "global" design elements in our site. The header, main navigation, footer and other HTML or JavaScript's are located in the master file.  This allows for site wide changes to take place by updating one page.

In addition to Master Pages, includes in the form of .ascx files are used for sectional navigation on both the right and left side of the site.  This allows our developers to add navigation items to an entire section of the website by updating one navigation file, rather than updating every single page.

Let's take a little closer look at our website and how it utilizes user controls in the form of includes and master pages to provide quicker development and website updates.

Let's start with a list of the major layout areas of this site.

We have a:

  • Meta Information
  • Header
  • Main Navigation
  • Left Navigation
  • Content Area
  • Right Navigation
  • Footer

The header, footer, right navigation and main navigation are a global constant for this sites web design. So these items we have defined in our master page. The meta information, left navigation and content area are the only areas that change per page. Default values for these areas are defined in the websites master page, but have been marked in the master page as "dynamic".

Let's take a look at the files that make up the page you're looking at right now and what is contained in each of them.

  • Master Page
    • Header (Global Constant)
    • Main Navigation (Global Constant)
    •  Left Navigation (Default - Dynamic Per Section)
    • Content Area (Default - Dynamic Per Page)
    •  Right Navigation (Global Constant)
    • Footer (Global Constant)
  • Left Navigation (Include - One File Per Section)
  • Actual Web Page (One Per Page)
    • Left Navigation (File Location)
    • Content
    • Meta Information

The master page contains all of the global items.  The left navigation includes links related to this section of the website. Finally, the actual web page, for this page, only includes two parts. The content area, which you are reading right now, and the meta information that search engines look at.

Let's look at this one more way before continuing on.  We will use pseudo code to show what's in each file.

Master Page

<meta information>Get this from the actual webpage or use the default value in the master file</meta information>

<header>Use this code on all pages that use the master page</header>

<main navigation>Use this code on all pages that use the master page</main navigation>

<left navigation>Get this from the actual webpage or use the default value in the master file</left navigation>

<content area>Get this from the actual webpage or use the default value in the master file</content area>

<right navigation>Use this code on all pages that use the master page</right navigation>

<footer>Use this code on all pages that use the master page</footer>

Left Navigation (for this section)

<links>Links for this section of the website</links>

Actual Web Page

<meta information>This information will replace the default information in the master page</meta information>

<left navigation>Location of file to us for left navigation</left navigation>

<content>This information will replace the default content area in the master page</content>

Now here is what happened when you visited this page, from the server's stand point.

  • Your browser requested this page.
  • The server saw that this page uses a master page.
  • The server got a copy of the master page and looked for the "dynamic" areas of the page.
  • The first dynamic area was meta information, so the server looked in the actual web page to see if there was replacement information. There was so it replaced the meta information in the master page with what was listed in the actual page.
  • The next two areas were the header and main navigation. These are "static" so they the code for these areas was pulled from the master page.
  • The next area was the left navigation, which is marked as dynamic in the master page, so the server looked in the actual web page to see what the replacement code should be.  The actual page said that the left navigation should use the left navigation file.  The server then grabbed the referenced left navigation file and replaced the left navigation area in the master page with the contents of that file.
  • The next area in the master file is the content area.  Content area is marked as dynamic, so the actual web page was used to provide information for this area.
  • The last two areas of the master page are the right navigation and footer. These areas are static so the code for these areas was pulled from the master page.

The master page system works by identifying the page as a whole, then marking areas as "dynamic". I know I have kind of rushed through the whole concept, but if you navigate our site, you can see how the content area is specific for each page, and the left navigation changes per section of the site.  The use of master pages allows us to only maintain common html or code once.

Additionally a new master page can be created and applied to different pages, as long as they share the same "dynamic" area's.

About Us

WSI is a small business and a leading provider of custom programming and database solutions for government entities, Fortune 1000 companies, and emerging businesses. We are your custom development experts.