Я уже давно пользуюсь преимуществами файлов Sitemap:
- Внешние связи страниц. Страницы не отвечают за определение своих собственных связей, вместо этого они поставляютсявнешним провайдером.Это снимает большую ответственность со страницы, когда дело доходит до визуализации элементов управления навигацией.Например, «Отображать моих детей» вместо «Я являюсь страницей со списком товаров, поэтому я должен отобразить список товаров».
- Отношения страниц могут быть выведены из любого места .Например, страницы Sitemap становятся полностью автоматизированными, как и хлебные крошки и навигация верхнего уровня.
- Общая навигация. Многоразовые элементы управления могут использоваться для отображения списков ссылок на страницы любого типа.
До сих пор я также использовал SiteMapProviders
в качестве механизма маршрутизации.Я сохранял «перенаправленный URL» и «URL-адрес обработчика» в свойствах Url и Key каждого узла соответственно.Т.е. приходит запрос, вызывается метод FindSiteMapNode, и запрос перезаписывается на ключ возвращаемого узла.
Это работает отлично , но я знаю, что времена меняются, и теперь у нас естьТаблицы маршрутизации.
После некоторых исследований выясняется, что отношения между страницами не могут быть выведены из маршрутов.Ergo: «Карта сайта не может быть выведена из таблицы маршрутизации».(Я прав?)
Принимая это утверждение, как мне сохранить мои замечательные карты сайта и в ногу со временем?Есть ли способ иметь оба без массы повторения кода между двумя?Какие конкретные выгоды я получу от таблиц маршрутизации по сравнению с моим текущим подходом?
Я рассмотрел: ASP.NET URL Routing with WebForms - Использование SiteMap , что указывает на http://chriscavanagh.wordpress.com/2009/05/19/asp-net-webform-routing-with-sitemaps/
Однако решение позволяет отображать только 1..1 между узлами и маршрутами соответственно.Например, вы не можете иметь много узлов продукта, указывающих на один маршрут с помощью этого метода.