ASP.NET: пользовательская динамически заполненная карта сайта (SiteMapProvider)
Я пытаюсь написать свой первый очень SiteMapProvider
подкласс. Он предназначен для динамического заполнения с использованием множества различных поисков в базе данных, как и во всех примерах, которые я нашел в Интернете.
Однако есть целый ряд вещей, которые мне не совсем понятны. Вот два моих первых вопроса:
- Почему
StaticSiteMapProvider
используется практически в каждом проекте вместоSiteMapProvider
? Поскольку класс содержит имя "статический", у меня создается впечатление, что он не такой... ну, динамичный, как я хочу. - Может ли кто-нибудь предоставить мне супер-минималистичный
SiteMapProvider
подкласс, который заполняет карту, используя только статические данные, т.е. нет доступа к базе данных и т. д.?
1 ответ
Решение
SiteMapProvider
может быть тотально динамичным. Например, он может выполнять динамический поиск только для узлов. По сравнению с StaticSiteMapProvider
Вы должны знать всю структуру. Так что это вам решать, что выбрать.
Вы можете посмотреть на XmlSiteMapProvider
Это хороший пример "статического" провайдера карт.
public class CoolMapProvider : StaticSiteMapProvider
{
public override SiteMapNode BuildSiteMap()
{
var root = new SiteMapNode(this, "test", "~/test.aspx");
base.AddNode(root, null);
base.AddNode(new SiteMapNode(this, "test-child", "~/test_child.aspx"), root);
return root;
}
}
Я не проверял это, но должно работать.