ASP.NET: Benutzerdefinierte dynamisch besiedelte Site -Karte (Sitemapprovider)
-
19-09-2019 - |
Frage
Ich versuche mein erstes eigenes zu schreiben SiteMapProvider
Unterklasse. Es soll dynamisch mithilfe einer Reihe verschiedener Datenbank -Lookups besiedelt werden, ähnlich wie alle Beispiele, die ich im Web gefunden habe.
Es gibt jedoch eine ganze Reihe von Dingen, die mir ziemlich unklar sind. Hier sind meine beiden ersten Fragen:
- Warum ist
StaticSiteMapProvider
verwendet in praktisch jedem Projekt anstelle vonSiteMapProvider
? Da die Klasse den Namen "statisch" enthält, bekomme ich den Eindruck, dass er nicht so ist, wie ich es will. - Kann mir jemand eine superminimalistische geben
SiteMapProvider
Unterklasse, die die Karte nur mit statischen Daten, dh ohne Datenbankzugriff usw. bevölkert?
Lösung
SiteMapProvider
Kann Tottaly dynamisch sein. Zum Beispiel kann es nur nach Knoten dynamisch suchen. Im Gegensatz zu StaticSiteMapProvider
Sie sollten die ganze Struktur kennen. Sie können also entscheiden, was Sie wählen können.
Sie können sich das ansehen XmlSiteMapProvider
, Dies ist ein gutes Beispiel für "statischen" Kartenanbieter.
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;
}
}
Ich habe das nicht überprüft, sollte aber funktionieren.