Навигация по сайту в ASP.NET 2.0 - Построение карты сайта
ОГЛАВЛЕНИЕ
Построение карты сайта
Карта сайта состоит из набора связанных между собой объектов SiteMapNode. Эти объекты формируют иерархию (как показано в начале данной статьи). Иерархия содержит одиночные корневые узлы, которые не имеют родительского узла. Каждый узел в иерархии представляет собой логический раздел веб-сайта. Каждый раздел может иметь заголовок, указатель ресурса (URL), описание и т.д., которые моделируются свойствами класса SiteMapNodes(Title, Url, Description, и т.д.).
Иерархия объектов SiteMapNodes представляется в таком виде, в котором она отображена в памяти в то время, когда она просматривается API библиотекой интерфейса навигации сайта. Тем не менее, данная карта сайта должна каким-то образом быть физически организована, например, при помощи XML файла или в таблице базы данных. По умолчанию, ASP.NET 2.0 предоставляет стандартное решение в виде реализации карты сайта при помощи XML файла. Чтобы использовать данную технику, вам необходимо в корневом каталоге вашего веб-приложения, названного Web.sitemap, создать XML файл, который будет иметь следующую структуру:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0">
<siteMapNode attributes="">
<siteMapNode attributes="">
<siteMapNode attributes="">
...
</siteMapNode>
<siteMapNode attributes="" />
...
<siteMapNode attributes="" />
</siteMapNode>
</siteMap>
Создание файла Web.sitemap |
---|
С момента появления Visual Studio 2005 вы можете с легкостью создать данный файл карты сайта посредством выбора опции Add New Item при правом клике на сайте в проводнике Solution Explorer, выбрав затем иконку Site Map ("Карта сайта"). Удостоверьтесь, что название файла осталось Web.sitemap. Созданный файл будет иметь несколько XML элементов <siteMapNode>, похожих на те, что мы рассмотрели выше. |
Элементы <siteMapNode> могут обладать несколькими атрибутами. Чаще всего встречаются следующие:
- title - определяет заголовок раздела
- url - определяет указатель ресурса раздела (URL); не является обязательным, но если он указан, каждый указатель карты сайта должен быть уникальным
- description - (не обязательно указывать) отображает описание раздела; используется в атрибуте alt обработанных элементов управления интерфейса навигации
Следующая карта сайта демонстрирует пример структуры сайта Amazon.com, рассмотренной в начале данной статьи. (Данный файл, наряду со всем интерфейсом навигации веб-сайта, вы можете загрузить в конце данной статьи ...)
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Default.aspx" title="Home">
<siteMapNode url="~/Books/Default.aspx" title="Books">
<siteMapNode url="~/Books/Novels.aspx" title="Novels" />
<siteMapNode url="~/Books/History.aspx" title="History" />
<siteMapNode url="~/Books/Romance.aspx" title="Romance" />
</siteMapNode>
<siteMapNode url="~/Electronics/Default.aspx" title="Electronics" />
<siteMapNode url="~/DVDs/Default.aspx" title="DVDs" />
<siteMapNode url="~/Computers/Default.aspx" title="Computers" />
</siteMapNode>
</siteMap>