El archivo layout.Master es una master page de ASP>Net y es la template que se utiliza para todas las paginas generadas por el portal. Cualquier código que ha de estar presente en cada una de las paginas que son generadas por el porta ha de ser añadido en layout.Master ya que de esta forma solo hay que añadirlo una vez y el cambio se verá reflejado en todas las paginas.
En el archivo layout.Master hay un número de elementos que han de estar siempre presentes ya que son aquellos que mojoPortal utiliza para generar las paginas. Aparte de estos elementos minimos que no han de ser eliminados, el desarrollador es libre de añadir o remover cualquier otro elemento.
Elementos mínimos que han de estar presentes
Las páginas generadas por mojoPortal no pueden funcionar sin estos elementos. Aparte de estos elementos mínimos las skin ha de tener los elementos estándares de html como head y body. El siguiente código es una skin o master page con los elementos mínimos utilizados por mojoPortal mas aquellos elementos Html indispensables para el correcto funcionamiento de una página:

Descripcionde los elementos:
- SiteMapDataSource: se utiliza para crear el menú.
- ScriptManager: se utiliza para incluir cualquier javascript necesario para la pagina.
- LoginLink: link que se utilizar para permitir a los usuarios entrar en el sistema.
- LogoutLink: link que se utiliza para permitir a los usuarios salir del sistema.
- contentplaceholder id=pageEditContent: área en la que se colocan los liks utilizados por los usaurios que pueden editar contenidos.
- SiteMenu: Este es el menú principal de la página. La configuración más importante es Direction la cual puede ser Horixontal o Vertical permitiendo cambiar la dirección del menú. La configuración TopLevelOnly normalmente es false al no ser que se esté utilizando también el elemento PageMenu.
- Panel id=divLeft: Este es el panel que contiene aquellos datos que serán puestos en la column izquierda de la página. En realidad en contenido es añadido en el ContentPlaceHolder que se encuentra en el interior de este panel pero el panel es utilizar para mostrar u coultar el contenido según se quiera utilizados CSS.
- Panel id=divCenter: Este es el contenedor que se utiliza para mostrar la información en la columna central de las páginas. En realidad en contenido es añadido en el ContentPlaceHolder que se encuentra en el interior de este panel pero el panel es utilizar para mostrar u coultar el contenido según se quiera utilizados CSS.
- Panel id=divRight: Este es el contenedor que se utiliza para mostrar la información en la columna central de la página. En realidad en contenido es añadido en el ContentPlaceHolder que se encuentra en el interior de este panel pero el panel es utilizar para mostrar u ocultar el contenido según se quiera utilizados CSS.
Se ha de mencionar que el CMS se encargara de ocultar o mostrar las columnas izquierda y derecha según exista o no contenido para ellas. El CMS también utiliza diferentes ids en las CSS según exista la columna izquierda o no de la siguiente forma:
- center-nomargins: esta id se utiliza cuando no existen ni la columna izquierda ni la derecha.
- center-rightandleftmargins: este id se utiliza cuando hay columna izquierda y columna derecha.
- center-rightmargin: este id se utiliza cuando hay columna derecha pero no izquierda.
- center-leftmargin: este id se utiliza cuando hay columna izquierda pero no derecha.
Elementos recomendados
Se recomienda que los siguientes elementos se utilicen a la hora de modificar el layout.Master. Si los siguientes elementos se eliminan de la pagina es probable que cierta funcionalidad del portal se pierda por lo que es importante entender cual es su función de forma que a la hora de eliminarlos sepamos exactamente lo que estamos haciendo.

- PageTitle: Este elemento debería de estar dentro del la cabeza de la pagina (<head>). Este control se encarga de generar el contenido que se muestra en la ventana del navegador. Por defecto el valor que muestra es NombreDelSite – NombreDeLaPagina pero esto se puede modificar fácilmente en la configuración de la pagina (PageSettings).
- Stylesheet: Este elemento se encarga de obtener la url de la CSS para la pagina. Al igual que el PageTitle este elemento ha de encontrarse en la cabeza de la pagina (<head>).
- MetaContent: Este elemento se encarga de generar el meta contenido de la pagina que es utilizado por ciertos buscadores web. El meta contenido se puede crear en la zona de administración así de cómo por cada página individual.
- Favicon: Este elemento se encarga de generar la url correcta para encontrar en favicon que se puestra a la izquierda de la url.
- WelcomMessage: este es el indicador que se utilizar para decir al usuario con que nombre de usuario esta registrado.
- HomeLink: link a la url inicial de la site.
- SiteMapLink: Link al mapa de la site. Se puede tener más de un link, esto depende del uso que se le quiera dar.
- MyPageLink: link a la página personal del usuario.
- UserProfileLink: Link al perfil del usuario.
- MailBoxLink: Este es un link al sistema interno de mensajes, aun no está implementado.
- MemberlistLink: Si el site tiene la configuración AllowAnonymousUsersToViewMemberList en verdadero este link será mostrado en toras las paginas, por lo contrario si es falso, el link solo se mostrara a los usuarios registrados.
- RegisterLink: Link que permite nuevos usuarios registrarse.
- SearchInput: Si la configuración LinkOnly es verdadera este elemento es un link al buscador de la pagina, si es falsa el link no se mostrara.
- SiteLogo: elemento que corresponde al logo de la pagina que se a puesto en la configuración de la pagina (Site Settings) y a su vez es un link a la pagina inicial del site.
- SiteTitle: Corresponde al título del site que se dio en la configuración (Site Settings).
- SkipLink: Es un elemento que se ha añadido para mejorar la accesibilidad, y debería de ser puesto cerca del título. Un link oculto es puesto cerca del título para que el usuario pase del menú al contenido de la página.
- Breadcrums: Los breadcums son unos indicadores de en qué lugar del site se encuentra el usuario. Si en la configuración del site se han habilitado los breadcums aparecerán, si no m son ignorados.
- ChildPageMenu: Si la opción de mostrar el menú de la subpáginas esta es verdadera un menú con las sub-paginas de la página actual será mostrado.
- SkinPreview: Se utiliza para usar la skin que se ha diseñado para la impresión de la página.
Elementos opcionales

El elemento:
<portal:FroumMyThreadsLink id="FroumMyThreadsLink1" runat="server" RenderAsListItem="true" />
Se utiliza para mostrar un link a las conversaciones que tiene el usuario en los foros. Si en usuario no ha tomado parte en ninguna conversación en link no aparece.
- SiteMapDataSource id=PageMapDataSource: Este elemento se required cuando se utiliza el elemento PageMenu.
- PageMenu: Este elemento opcional se utiliza cuando se quiere utilizar un menú dividido. Normalmente esto se consigue usando la dirección del Menu en Horizontal y la opción TopLevelOnly en verdadero. La forma más sencilla de comprender el proceso es usar la siguientes skins como ejemplo:
o splitmen1
o splitmenu2
o jwh1