MintPlayer.AspNetCore.SpaServices.Prerendering
10.6.0
See the version list below for details.
dotnet add package MintPlayer.AspNetCore.SpaServices.Prerendering --version 10.6.0
NuGet\Install-Package MintPlayer.AspNetCore.SpaServices.Prerendering -Version 10.6.0
<PackageReference Include="MintPlayer.AspNetCore.SpaServices.Prerendering" Version="10.6.0" />
<PackageVersion Include="MintPlayer.AspNetCore.SpaServices.Prerendering" Version="10.6.0" />
<PackageReference Include="MintPlayer.AspNetCore.SpaServices.Prerendering" />
paket add MintPlayer.AspNetCore.SpaServices.Prerendering --version 10.6.0
#r "nuget: MintPlayer.AspNetCore.SpaServices.Prerendering, 10.6.0"
#:package MintPlayer.AspNetCore.SpaServices.Prerendering@10.6.0
#addin nuget:?package=MintPlayer.AspNetCore.SpaServices.Prerendering&version=10.6.0
#tool nuget:?package=MintPlayer.AspNetCore.SpaServices.Prerendering&version=10.6.0
MintPlayer.AspNetCore.SpaServices.Prerendering
This package provides enhanced server-side prerendering capabilities for ASP.NET Core single-page applications. It is a dependency of MintPlayer.AspNetCore.SpaServices.Routing.
Installation
NuGet Package Manager
Install-Package MintPlayer.AspNetCore.SpaServices.Prerendering
.NET CLI
dotnet add package MintPlayer.AspNetCore.SpaServices.Prerendering
Features
- Server-side prerendering with data injection
- Support for Angular Universal and similar SSR solutions
- Integration with ASP.NET Core request pipeline
MSBuild Integration
This package includes MintPlayer.AspNetCore.NodeServices which automatically configures your project with build targets for SPA development.
See the NodeServices documentation for details on:
EnableSpaBuilder- Master switch to disable SPA build automationSpaRoot- Configure your SPA source folderBuildServerSideRenderer- Toggle SSR bundle building
Disabling SPA Builder
If your project doesn't have a SPA but references this package:
<PropertyGroup>
<EnableSpaBuilder>false</EnableSpaBuilder>
</PropertyGroup>
Usage
spa.UseSpaPrerendering(options =>
{
options.BootModulePath = $"{spa.Options.SourcePath}/dist/server/main.js";
options.BootModuleBuilder = env.IsDevelopment()
? new AngularCliBuilder(npmScript: "build:ssr")
: null;
options.ExcludeUrls = new[] { "/sockjs-node" };
options.SupplyData = (context, data) =>
{
// Supply data to the prerenderer
data["message"] = "Hello from server!";
};
});
Related Packages
- MintPlayer.AspNetCore.NodeServices - Node.js integration
- MintPlayer.AspNetCore.SpaServices - Core SPA services
- MintPlayer.AspNetCore.SpaServices.Routing - SPA route integration (recommended)
License
This project is licensed under the Apache 2.0 License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- MintPlayer.AspNetCore.NodeServices (>= 10.4.1)
- MintPlayer.AspNetCore.SpaServices (>= 10.6.0)
- MintPlayer.SourceGenerators.Attributes (>= 10.13.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on MintPlayer.AspNetCore.SpaServices.Prerendering:
| Package | Downloads |
|---|---|
|
MintPlayer.AspNetCore.SpaServices.Routing
This package simplifies SPA prerendering. Declare your SPA routes in ISpaPrerenderingService.BuildRoutes, then look up which route the incoming URL matched in OnSupplyData and hand the prerenderer exactly the data that page needs. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.8.0-preview1 | 80 | 9/5/2026 |
| 10.7.1 | 77 | 9/5/2026 |
| 10.7.0 | 87 | 9/3/2026 |
| 10.6.0 | 127 | 8/27/2026 |
| 10.5.0 | 279 | 3/14/2026 |
| 10.4.0 | 852 | 2/27/2026 |
| 10.3.0 | 166 | 2/1/2026 |
| 10.2.1 | 187 | 1/19/2026 |
| 10.2.0 | 171 | 1/18/2026 |
| 10.1.0 | 182 | 1/16/2026 |
| 10.0.2 | 177 | 1/12/2026 |
| 10.0.1 | 302 | 12/20/2025 |
| 10.0.0 | 897 | 11/13/2025 |
| 10.0.0-rc.6 | 358 | 11/11/2025 |
| 10.0.0-rc.5 | 277 | 11/11/2025 |
| 10.0.0-rc.4 | 215 | 11/5/2025 |
| 10.0.0-rc.3 | 176 | 11/5/2025 |
| 10.0.0-rc.2 | 208 | 11/5/2025 |
| 10.0.0-rc.1 | 171 | 10/2/2025 |
| 9.1.0 | 1,735 | 11/22/2024 |
v 10.6.0
BREAKING CHANGES
- Content types are now matched case-insensitively, with optional whitespace allowed before the ';'
(media types are case-insensitive per RFC 9110 8.3.1). A response typed "TEXT/HTML" or
"Text/Html; charset=utf-8" was previously passed through unrendered; it is now prerendered.
- A RenderToStringResult carrying both RedirectUrl and Globals now throws. The Globals guard lived
in the else-branch only, so the payload was silently dropped on the redirect path while the same
payload on a rendered page threw.
- HTTP 308 is now treated as a permanent redirect alongside 301. It was previously downgraded to
302, losing both the permanence and the method preservation.
FIXES
- A render result with no Html now reports that prerendering returned no HTML, instead of surfacing
as ArgumentNullException (Parameter 'text').