He usado Mike Brind's Sitemap code, con un pequeño cambio.
Debe agregar el XNamespace a cada XElement, de lo contrario, Google escupe el maniquí.
aquí está mi versión:
public ContentResult Index()
{
XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";
const string url = "http://www.website.com/controller/action/{0}";
var items = _db.DataAccessHere();
var sitemap = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement(ns + "urlset",
from i in items
select
//Add ns to every element.
new XElement(ns + "url",
new XElement(ns + "loc", string.Format(url, i.ItemID)),
new XElement(ns + "lastmod", String.Format("{0:yyyy-MM-dd}", i.DateAddedUTC)),
new XElement(ns + "changefreq", "monthly"),
new XElement(ns + "priority", "0.5")
)
)
);
return Content(sitemap.ToString(), "text/xml");
}
Gracias a Mike por publicar el artículo original y el código.
Ta, Buena pieza de código. Es posible que desee agregar otro XElement del nodo del sitio raíz. – Junto
código grande y simple, lo usé y creé http://www.gprprojecten.nl/Home/Sitemap con la adición de que @Junto ya propuso –
Gracias - nuevamente - a Mike. Su sitio web está en http://www.mikesdotnetting.com, y sus artículos son simples de entender y poderosos. Y no, no tengo ninguna conexión con él, aparte de eso, quiero agradecerles. –