From 347524a11679595edef7143b50801da251e3f1d5 Mon Sep 17 00:00:00 2001 From: peterlazzarino Date: Tue, 21 Feb 2017 22:04:31 -0500 Subject: [PATCH] Add status code response capabilities to PrerenderTagHelper and RenderToStringResult. Client can now send status codes back based on client routes. --- .../Prerendering/PrerenderTagHelper.cs | 5 +++++ .../Prerendering/RenderToStringResult.cs | 5 +++++ .../npm/aspnet-prerendering/src/PrerenderingInterfaces.d.ts | 1 + 3 files changed, 11 insertions(+) diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs b/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs index 43272a2..6462e22 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs +++ b/src/Microsoft.AspNetCore.SpaServices/Prerendering/PrerenderTagHelper.cs @@ -129,6 +129,11 @@ namespace Microsoft.AspNetCore.SpaServices.Prerendering return; } + if (result.StatusCode.HasValue) + { + ViewContext.HttpContext.Response.StatusCode = result.StatusCode.Value; + } + // It's some HTML to inject output.Content.SetHtmlContent(result.Html); diff --git a/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs b/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs index 82c68c3..a213baf 100644 --- a/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs +++ b/src/Microsoft.AspNetCore.SpaServices/Prerendering/RenderToStringResult.cs @@ -25,5 +25,10 @@ namespace Microsoft.AspNetCore.SpaServices.Prerendering /// to the SPA's routing configuration. /// public string RedirectUrl { get; set; } + + /// + /// If set, specifies the HTTP status code that should be sent back with the server response. + /// + public int? StatusCode { get; set; } } } \ No newline at end of file diff --git a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/PrerenderingInterfaces.d.ts b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/PrerenderingInterfaces.d.ts index 68dda7e..446a242 100644 --- a/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/PrerenderingInterfaces.d.ts +++ b/src/Microsoft.AspNetCore.SpaServices/npm/aspnet-prerendering/src/PrerenderingInterfaces.d.ts @@ -8,6 +8,7 @@ interface RenderToStringCallback { interface RenderToStringResult { html: string; + statusCode: number; globals?: { [key: string]: any }; }