ASP.NET Site Maps

głosy
31

Czy ktoś ma doświadczenie w tworzeniu ASP.NET SQL oparte Mapa witryny dostawców?

Mam domyślny plik XML web.sitemapdziała prawidłowo z mojego menu i SiteMapPath kontroli, ale będę potrzebował drogę dla użytkowników mojej strony do tworzenia i modyfikowania stron dynamicznie.

Muszę związać uprawnienia strona oglądalności do standardowego ASP.NETsystemu członkostwa, jak również.

Utwórz 01/08/2008 o 16:50
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
11

Wersja Jeff Prosise z magazynu MSDN działa całkiem dobrze, ale ma kilka wad:

AddNode maniaków się linki do stron zewnętrznych, w menu (www.google.com, itp)

Oto moja poprawka w 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);
}

SQLDependencybuforowanie jest fajne, ale jeśli nie chcesz, aby podróż do DB ładuje się za każdym razem menu (aby sprawdzić, czy zależność uległa zmianie) i Twoje menu nie zmieniają się bardzo często, to dlaczego nie użyć HttpRuntime.Cachezamiast tego?

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;
    }
}
Odpowiedział 23/09/2008 o 23:41
źródło użytkownik

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