ASP.NET-Site Karten

stimmen
31

Hat jemand Erfahrung im Erstellen von SQL-basierten ASP.NET Site-Map - Anbieter?

Ich habe die Standard - XML - Datei web.sitemapordnungsgemäß funktioniert mit meinem Menü und SiteMapPath Kontrollen, aber ich werde einen Weg für die Benutzer von meiner Seite benötigt zum Erstellen und Ändern Seiten dynamisch.

Ich brauche Seite Anzeigeberechtigungen in den Standard zu binden ASP.NETals auch Mitgliedschaftssystem.

Veröffentlicht am 01/08/2008 um 16:50
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
11

Die Jeff Prosise Version von MSDN Magazin funktioniert recht gut, aber es hat ein paar Fehler:

AddNode Freaks mit Links zu externen Seiten auf Ihrem Menü aus (www.google.com, etc.)

Hier ist meine fix in BuildSiteMap():

SiteMapNode node = GetSiteMapNodeFromReader(reader);
string url = node.Url;
if (url.Contains(":"))
{
    string garbage = Guid.NewGuid().ToString();  // SiteMapNode needs unique URLs
    node.Url = "~/dummy_" + garbage + ".aspx";
    AddNode(node, _root);
    node.Url = url;
}
else
{
    AddNode(node, _root);
}

SQLDependencyCaching ist cool, aber wenn Sie nicht eine Reise in die DB jedes Mal Ihr Menü Lasten (zu überprüfen , um zu sehen , ob die Abhängigkeit geändert hat) machen wollen und Ihre Menüs ändern sich nicht sehr oft, warum dann nicht verwenden , HttpRuntime.Cachestattdessen?

public override SiteMapNode RootNode
{
    get
    {
        SiteMapNode temp = (SiteMapNode)HttpRuntime.Cache["SomeKeyName"];
        if (temp == null)
        {
            temp = BuildSiteMap();
            HttpRuntime.Cache.Insert("SomeKeyName", temp, null, DateTime.Now.AddHours(1), Cache.NoSlidingExpiration);
        }
        return temp;
    }
}
Beantwortet am 23/09/2008 um 23:41
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more