2010-06-03 6 views
5

के बिना एक पृष्ठ शामिल है या नहीं, यह जांचना चाहते हैं कि मेरे साइट मानचित्र में एक पृष्ठ है।एएसपी.नेट साइटमैप - प्रोग्रामेटिक रूप से देखने का कोई तरीका है कि इसमें प्रत्येक नोड के माध्यम से अलग-अलग

बस साइटमैप.RootNode.GetAllNodes() के माध्यम से पुन: सक्रिय हो सकता है लेकिन मैन्युअल रूप से पुनरारंभ किए बिना किसी पृष्ठ को खोजने का कोई तरीका है?

उत्तर

4

आप .NET फ्रेमवर्क 3.5 पर हैं, तो आप एक LINQ विधि का उपयोग कर सकते हैं:

SiteMapNodeCollection pages = SiteMap.RootNode.GetAllNodes(); 
SiteMapNode myPage = pages.SingleOrDefault(page => page.Url == "somePageUrl"); 
1

आप .NET 2.0 पर आप कुछ इसी तरह कर सकते हैं कर रहे हैं: एक (सामान्य) सूची में अपने नोड्स डाल और Find(...) का उपयोग करें। की लाइनों के साथ:

string urlToLookFor = "myPageURL"; 
List<SiteMapNode> myListOfNodes = new 
     List<SiteMapNode>(SiteMap.RootNode.GetAllNodes()); 
SiteMapNode foundNode = myListOfNodes.Find(delegate(SiteMapNode currentNode) 
{ 
    return currentNode.Url.ToString().Equals(urlToLookFor); 
}); 

if(foundNode != null) { 
    ... // Node exists 
} 

इस तरह आपको मैन्युअल रूप से पुन: सक्रिय करने की आवश्यकता नहीं है :) यदि यह "बेहतर" एक और सवाल है।

संबंधित मुद्दे

 संबंधित मुद्दे