• Microsoft .NET
  • ASP.NET
  • Использование элементов управления ListView и DataPager в ASP.NET 3.5

Навигация по сайту в 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 обработанных элементов управления интерфейса навигации
Элементы <siteMapNode> могут быть вложены; тем не менее карта сайта должна содержать корневой элемент <siteMapNode>. То есть узел <siteMap> должен обладать единственным потомком <siteMapNode>.

Следующая карта сайта демонстрирует пример структуры сайта 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>