Je suis en train de créer automatiquement un sitemap ActionResult que les sorties valide sitemap.xml fichier. La génération réelle du fichier n'est pas un problème, mais je n'arrive pas à comprendre comment remplir la liste d'URL dans le système. Voici le code que j'ai pour l'instant:
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);
}
}
Par exemple, imaginons que j'ai deux contrôleurs, et chaque contrôleur dispose de deux actions qui leur sont associés:
HelpController
- Modifier
- Créer
AboutController
- Société
- Gestion
Je n'arrive pas à comprendre comment obtenir une liste des URL du genre: