Я пытаюсь создать автоматическую карту сайта ActionResult, которая выводит действительный файл sitemap.xml. Фактическое создание файла не является проблемой, но я не могу понять, как заполнить список URL-адресов в системе. Вот код, который у меня есть до сих пор:
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
- Компания
- Управление
Я не могу понять, как получить список URL, например: