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 }; }