From 8e4c81cc6d9e2ec2c62bfe09925d1d1a0514b30e Mon Sep 17 00:00:00 2001 From: Anders Bjerner Date: Thu, 6 Jan 2022 19:31:25 +0100 Subject: [PATCH] Outputting XML from an API controller has changed a bit from ASP.NET to ASP.NET Core --- .../Sitemaps/SitemapController.cs | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/Limbo.Umbraco.Seo/Sitemaps/SitemapController.cs b/src/Limbo.Umbraco.Seo/Sitemaps/SitemapController.cs index e513d5e..29da337 100644 --- a/src/Limbo.Umbraco.Seo/Sitemaps/SitemapController.cs +++ b/src/Limbo.Umbraco.Seo/Sitemaps/SitemapController.cs @@ -1,5 +1,6 @@ -using System.Net.Http; -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; +using System.IO; +using System.Text; using Umbraco.Cms.Web.Common.Controllers; namespace Limbo.Umbraco.Seo.Sitemaps { @@ -13,8 +14,25 @@ public SitemapController(ISitemapHelper sitemapHelper) { } [HttpGet] - public HttpResponseMessage XmlSitemap() { - return _sitemapHelper.BuildSitemap(HttpContext).AsResponseMessage(); + public ActionResult XmlSitemap() { + + // Generate a new sitemap + ISitemapResult sitemap = _sitemapHelper.BuildSitemap(HttpContext); + + // Generate the XML for the sitemap + StringBuilder builder = new StringBuilder(); + using (TextWriter writer = new StringWriter(builder)) { + sitemap.ToXml().Save(writer); + } + + // Return a content result with the XML + return new ContentResult { + ContentType = "application/xml", + Content = builder.ToString(), + StatusCode = 200 + }; + + } }