From 1be9102aea7f0746a9b1219191c2abad70804f49 Mon Sep 17 00:00:00 2001 From: SteveSandersonMS Date: Fri, 9 Sep 2016 11:09:44 +0100 Subject: [PATCH] Prerendering server-side code can now issue redirections. Fixes #280 --- .../Prerendering/PrerenderTagHelper.cs | 9 +++++++++ .../Prerendering/RenderToStringResult.cs | 1 + 2 files changed, 10 insertions(+) diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs b/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs index de02c90..7bce95c 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs +++ b/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs @@ -85,6 +85,15 @@ namespace Microsoft.AspNetCore.SpaServices.Prerendering unencodedPathAndQuery, CustomDataParameter, TimeoutMillisecondsParameter); + + if (!string.IsNullOrEmpty(result.RedirectUrl)) + { + // It's a redirection + ViewContext.HttpContext.Response.Redirect(result.RedirectUrl); + return; + } + + // It's some HTML to inject output.Content.SetHtmlContent(result.Html); // Also attach any specified globals to the 'window' object. This is useful for transferring diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs b/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs index 1d5b482..cae8d63 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs +++ b/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs @@ -6,5 +6,6 @@ namespace Microsoft.AspNetCore.SpaServices.Prerendering { public JObject Globals { get; set; } public string Html { get; set; } + public string RedirectUrl { get; set; } } } \ No newline at end of file