एएसपी.नेट साइट मानचित्र

क्या किसी को SQL- आधारित ASP.NET साइट-मानचित्र प्रदाता बनाने का अनुभव है?

मेरे पास डिफ़ॉल्ट मेनू फ़ाइल web.sitemap मेरे मेनू और SiteMapPath नियंत्रणों के साथ ठीक से काम कर रही है, लेकिन मुझे अपनी साइट के उपयोगकर्ताओं को पृष्ठों को बनाने और संशोधित करने के लिए एक तरीका चाहिए गतिशील।

मुझे पेज देखने की अनुमति मानक ASP.NET सदस्यता प्रणाली में भी जोड़नी होगी।

0
जोड़ा संपादित
विचारों: 1
कृपया सबसे अच्छा जवाब का चयन करें, धन्यवाद।
जोड़ा लेखक mruanova, स्रोत

1 उत्तर

एमएसडीएन पत्रिका से जेफ प्रोोजिस संस्करण बहुत अच्छी तरह से काम करता है, लेकिन इसमें कुछ त्रुटियां हैं:

AddNode freaks out with links to external sites on your menu (www.google.com, etc.)

यहां 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);
}

SQLDependency caching is cool, but if you don't want to make a trip to the DB everytime your menu loads (to check to see if the dependency has changed) and your menus don't change very often, then why not use HttpRuntime.Cache instead?

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;
    }
}
0
जोड़ा