Pergunta

Estou tentando escrever meu primeiro SiteMapProvider subclasse. Ele deve ser preenchido dinamicamente usando várias pesquisas de banco de dados diferentes, como todos os exemplos que encontrei na web.

No entanto, há um monte de coisas que não são claras para mim. Aqui estão minhas duas primeiras perguntas:

  • Por que é StaticSiteMapProvider usado em praticamente todo o projeto de todos em vez de SiteMapProvider? Como a classe contém o nome "estático", estou tendo a impressão de que não é tão ... bem, dinâmico que eu quiser.
  • Alguém pode me fornecer um super-minimalista SiteMapProvider A subclasse que preenche o mapa usando apenas dados estáticos, ou seja, nenhum acesso ao banco de dados etc.?
Foi útil?

Solução

SiteMapProvider pode ser dinâmico tottaly. Por exemplo, ele pode fazer uma pesquisa dinâmica apenas para nós. Em contraste com StaticSiteMapProvider Você deve conhecer toda a estrutura. Então, isso para você decidir o que escolher.

Você pode olhar para o XmlSiteMapProvider, este é um bom exemplo de provedor de mapa "estático".

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;
    }
}

Eu não verifiquei isso, mas deveria funcionar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top