में गतिशील साइटमैप मैं एक स्वचालित साइटमैप एक्शन रिसेट बनाने की कोशिश कर रहा हूं जो वैध साइटमैप.एक्सएमएल फ़ाइल आउटपुट करता है। फ़ाइल की वास्तविक पीढ़ी एक समस्या नहीं है, लेकिन मुझे लगता है कि सिस्टम में यूआरएल की सूची को कैसे पॉप्युलेट करना है, यह समझ में नहीं आता है।एएसपी.नेट एमवीसी
public ContentResult Sitemap()
{
XNamespace xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9";
XElement root = new XElement(xmlns + "urlset");
//some kind of foreach here to get the loc variable for all URLs in the site
//for each URL in the collection, add it to the root element as here
//root.Add(
// new XElement("url",
// new XElement("loc", "http://google.com"),
// new XElement("changefreq", "daily")));
using (MemoryStream ms = new MemoryStream())
{
using (StreamWriter writer = new StreamWriter(ms, Encoding.UTF8))
{
root.Save(writer);
}
return Content(Encoding.UTF8.GetString(ms.ToArray()), "text/xml", Encoding.UTF8);
}
}
उदाहरण के लिए, मैं दो नियंत्रकों है लगता है, और प्रत्येक नियंत्रक दो कार्यों के लिए उनके साथ संबद्ध किया है::
HelpController
- संपादित यहाँ कोड मैं अब तक किया है
AboutController
- कंपनी
- प्रबंधन
मैं यह पता लगाने की कैसे यूआरएल की तरह की एक सूची प्राप्त नहीं कर पा रहे:
- http://localhost/help/edit
- http://localhost/help/create
- http://localhost/about/company
- http://localhost/about/management
हाल ही में, @ eduncan911 से उत्तर की तरह, सबसे अच्छा समाधान http://mvcsitemap.codeplex.com/ सक्रिय और अद्यतन प्रोजेक्ट का उपयोग करना है, सुरक्षा ट्रिमिंग के लिए समर्थन और sitemap.xml उत्पन्न करेगा। यह साइट साइटमैप को स्वचालित रूप से संपीड़ित कर सकता है अगर एजेंट इसके लिए समर्थन करता है और साइटमैप को उप-साइटमैप में विभाजित करता है यदि साइट बहुत बड़ी है क्योंकि sitemap.xml मानक में केवल 50k नोड्स की सीमा है। – CallMeLaNN
धन्यवाद CallMeLaNN। मैंने हाल ही में उन बिंदुओं और अधिक सूची के उत्तर के साथ-साथ उस साइट को सूचीबद्ध करने के लिए उत्तर दिया जो इसे स्थानांतरित कर दिया गया है। – eduncan911