Domanda

Sto cercando di scrivere il mio primo molto personale sottoclasse SiteMapProvider. E 'pensato per essere popolato dinamicamente utilizzando un mazzo di diverse ricerche nei database, proprio come tutti gli esempi che ho trovato sul web.

Tuttavia, ci sono un sacco di cose che sono del tutto chiaro per me. Qui sono le mie due prime domande:

  • Perché è StaticSiteMapProvider utilizzato praticamente in progetto di tutti, invece di SiteMapProvider? Dal momento che la classe contiene il nome di "statica", sto ricevendo l'impressione che non è così ... beh, dinamica come lo voglio.
  • Qualcuno può fornirmi una sottoclasse SiteMapProvider super-minimalista che popola la mappa utilizzando solo i dati statici, vale a dire senza accesso al database, ecc.?
È stato utile?

Soluzione

SiteMapProvider può essere tottaly dinamica. Per esempio si può fare ricerca dinamica solo per i nodi. In contrasto con StaticSiteMapProvider si dovrebbe sapere tutta la struttura. Quindi questo per voi a decidere cosa scegliere.

È possibile guardare il XmlSiteMapProvider, questo è buon esempio di fornitore di mappe "statico".

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

Non ho controllato questo, ma dovrebbe funzionare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top