Краткий обзор мастер-страниц (Master Pages) в ASP.NET 2.0 - Создание страницы ASP.NET на основании  мастер-страницы

ОГЛАВЛЕНИЕ

Создание страницы ASP.NET на основании  мастер-страницы

Как только вы создали мастер-страницу, при создании страницы ASP.NET вам нужно будет указать, какие именно страницы должны унаследовать верстку от данной мастер-страницы. При добавлении новой веб-страницы в проект, вы можете указать, что она использует определенную мастер-страницу, как это показано в следующем изображении:


Если вы выберете опцию "Select master page" ("Выбрать мастер-страницу") , вы будете переведены в диалоговое окно, которое попросит вас выбрать ту мастер-страницу, которая будет основой для страницы ASP.NET. Следующее изображение показывает данное диалоговое окно. Так как мы создали только одну мастер-страницу (она называется MasterPage.master), то в списке доступна только одна мастер-страница. Тем не менее, на сайте может быть несколько мастер-страниц, так как вам может понадобиться наличие различного дизайна для различных областей сайта.


Как только вы выберете мастер-страницу, будет создана новая страница ASP.NET. Содержимое страницы ASP.NET очень минималистично - вместо того, чтобы хранить стандартный текст HTML-разметки, которую имеет новая страница ASP.NET без мастер-страницы, наша новая страница ASP.NET просто содержит ссылку на выбранную мастер-страницу:

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" Title="Untitled Page" %> 

Это все, что касается страницы ASP.NET! Если вы откроете конструктор, то вы сможете увидеть полную верстку данной мастер-страницы. Отсюда же вы можете добавить элементы управления и разметку для областей содержимого, но разметка, находящаяся за пределами данной области  недоступна, а следовательно, ее невозможно изменить, находясь на данной странице. Следующее изображение демонстрирует нашу страницу ASP.NET после того, как была добавлена информация в область содержимого.


После того, как вы добавили необходимую информацию на странице ASP.NET, при переходе обратно в режим просмотра HTML вы сможете увидеть добавленные элементы управления содержимого (Content controls), которые хранят в себе элементы и разметку, указанную вами в конструкторе. После внесения некоторой информации в обе области содержимого декларативный синтаксис нашей страницы ASP.NET должен выглядеть следующим образом:

<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" Title="Untitled Page" %>

<asp:Content ID="Content1" ContentPlaceHolderID="mainContent" Runat="server">Welcome
    to my Web site.  You are visiting the home page.  You can visit other
    pages by clicking the links on the right.</asp:Content>
    
<asp:Content ID="Content2" ContentPlaceHolderID="menuContent" Runat="server">Home<br />
    <a href="Sports.aspx">Sports</a><br />
    <a href="FavFolks.aspx">My Favorite People</a><br />
    <a href="http://www.google.com/">Google</a></asp:Content>

Заметьте, как использование мастер-страниц разделяет верстку, и содержимое страницы ASP.NET. HTML-верстки хранится в мастер-странице; страница ASP.NET содержит лишь содержимое конкретной страницы. Данное разделение предоставляет возможность изменения верстки и стиля сайта целиком путем редактирования только мастер-страницы. То есть, если вы хотите изменить текст, например, в шапке, вам всего лишь придется отредактировать файл MasterPage.master. После внесения данного изменения любой пользователь, зашедший на вашу ASP.NET-страницу, использующую мастер-страницу, увидит новый текст.

Вывод

В данной статье мы привели краткий обзор мастер-страниц (MasterPages) в ASP.NET 2.0. Мастер-страницы уже не являются новинкой, так как ASP.NET 1.x уже поддерживало их. Интересным фактом является то, что Visual Studio 2005 предоставляет богатую поддержку мастер-страниц в режиме проектирования - то, чего так не хватало в Visual Studio .NET. Используя мастер-страницы, вы можете достичь истинного разделения между разметкой верстки и разметкой содержимого вашего сайта. Теперь вы сможете создать сайт, обладающий соответствующим сценарием диалога с пользователем, а также с легкостью обновить весь сайт иным стилем.

Веселого программирования!

Scott Mitchell