Добавление узлов в mvcsitemap в коде

Я строю простую CMS, которая хранит навигацию / карту сайта / структуру сайта в таблице базы данных. Когда приложение запускается, я могу динамически создавать узлы Sitemap на основе данных из этой таблицы.

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

1 ответ

Решение

Нет встроенной поддержки очистки / восстановления карты сайта на лету.
Но вы могли бы реализовать это сами довольно легко, внедрив пользовательский поставщик сайта, производный от MvcSiteMapProvider.DefaultSiteMapProviderи создать метод, используемый для очистки кэша, используя защищенный Clear() метод. Пример:

public class CustomSiteMapProvider : DefaultSiteMapProvider
{
  public void ClearSiteMap()
  {
    Clear();
  }
}

Я не пробовал это, но это должно работать. Не забудьте изменить файл web.config, чтобы использовать собственный sitemapprovider вместо DefaultSiteMapProvider,

Другие вопросы по тегам