/ / एक परियोजना में दो web.sitemap का उपयोग करना - c #, asp.net, webforms, web-config, web.sitemap

प्रोजेक्ट में दो web.sitemap का उपयोग करना - सी #, एएसपीनेट, वेबफॉर्म, वेब-कॉन्फिग, वेब.sitemap

मैं दो अलग-अलग वेब का उपयोग करना चाहता हूं।एक आवेदन में साइटमैप। (एक बूटस्ट्रैप नेवबार मेरे मास्टर पेज में बनाया गया है, मैं अलग-अलग लेआउट डिफ़ॉल्ट पेज आदि चाहता हूं) इसलिए एमएसडीएन कहता है कि आपको एक नया web.sitemap और web.config में एक कुंजी जोड़ना होगा msdn प्रलेखन ऐसा करने के बाद यह सुनिश्चित नहीं करें कि नए web.sitemap को क्वेरी कैसे करें क्योंकि मैं मूल एक को निम्नानुसार पढ़ता हूं:

SiteMapNode rootNode = SiteMap.RootNode;
makeNavbar(rootNode.ChildNodes, true, false);
....

और इसके ठीक ... नौबत इसके सब ठीक है ...

लेकिन मुझे क्या चाहिए कुछ इस तरह है:

SiteMapBode rootNode = SiteMap.UseProvider("newSiteMap").RootNode;

जाहिर है कि फ़ंक्शन मौजूद नहीं है ...

सभी मैं चाहता हूँ कि इसके नए web.sitemap को बहुत अधिक कोड बदले बिना पढ़ें।

क्या कोई मुझे सही दिशा दिखा सकता है?

अग्रिम में धन्यवाद।

उत्तर:

जवाब के लिए 0 № 1

यह आपके विन्यास में है।

    <siteMap defaultProvider="XmlSiteMapProvider" enabled="true">
<providers>
<clear />
<add name="XmlSiteMapProvider" type="System.Web.XmlSiteMapProvider" siteMapFile="Web.sitemap" />
<add name="XmlSiteMapProvider2" type="System.Web.XmlSiteMapProvider" siteMapFile="secondsitemapname.sitemap" />
</providers>
</siteMap>

अगली चीज़ जो मैं कर रहा हूँ वह है बस asp: addemapdatasource उस पृष्ठ पर सही नाम के साथ जो आपने config फ़ाइल में दिया था।

फिर यदि आपके पास एक asp: मेनू, Asp: पुनरावर्तक या कोई अन्य नियंत्रण है, तो आप इसे asp से जोड़ने के लिए डेटा स्रोत का उपयोग कर सकते हैं: साइटमैप

SiteMapDataSource test = new SiteMapDataSource();
test.Provider.RootNode

जवाब के लिए 0 № 2

खैर मुझे इसका हल मिल गया। प्रश्न में प्रयुक्त उदाहरण की तरह साइटमैप वर्ग का उपयोग करके आप प्रोग्राम को विभिन्न web.sitemap तक पहुंचा सकते हैं और पढ़ सकते हैं

SiteMapNode rootNode = SiteMap.Providers["SiteMap2"].RootNode;

@Davy Quyo का धन्यवाद जो मुझे पहला कदम बताते हैं: प्रदाता को web.config में जोड़ना