public override void ExecuteResult(ControllerContext context) { var encoding = context.HttpContext.Response.ContentEncoding.WebName; var declaration = new XDeclaration("1.0", encoding, "yes"); var mappedElements = from sitemap in _model select MapHelpers.Map(sitemap); var content = new XElement("urlset", _namespace, mappedElements); var sitemapDocument = new XDocument(declaration, content); context.HttpContext.Response.ContentType = "application/rss+xml"; context.HttpContext.Response.Flush(); context.HttpContext.Response.Write(sitemapDocument.Declaration + sitemapDocument.ToString()); }
public virtual ActionResult Sitemap() { var model = new SitemapModel(new[] { MapHelpers.Map(Url, MVC.Product.List(null, null, null, null, null)) }); var categories = _categoryRepository.GetAll(); var products = _productRepository.GetAll(); foreach (var sitemap in categories.ToList().Select(c => MapHelpers.Map(Url, c))) { model.Add(sitemap); } foreach (var sitemap in products.ToList().Select(p => MapHelpers.Map(Url, p))) { model.Add(sitemap); } model.Add(MapHelpers.Map(Url, MVC.Home.Sitemap())); return(Sitemap(model)); }