Razor.Templating.Core 1.4.0-rc.1

.NET 5.0 .NET Core 3.0
Suggested Alternatives

Razor.Templating.Core 1.5.0

Additional Details

Kindly update the package to v1.5.0 as some critical bugs were fixed in this version.

This is a prerelease version of Razor.Templating.Core.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Razor.Templating.Core --version 1.4.0-rc.1
NuGet\Install-Package Razor.Templating.Core -Version 1.4.0-rc.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Razor.Templating.Core" Version="1.4.0-rc.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Razor.Templating.Core --version 1.4.0-rc.1
#r "nuget: Razor.Templating.Core, 1.4.0-rc.1"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install Razor.Templating.Core as a Cake Addin
#addin nuget:?package=Razor.Templating.Core&version=1.4.0-rc.1&prerelease

// Install Razor.Templating.Core as a Cake Tool
#tool nuget:?package=Razor.Templating.Core&version=1.4.0-rc.1&prerelease

Razor Templating

Build+Test Nuget Downloads

Using Razor for HTML templating was never been so easy like this. Render your .cshtml files into string easily using this library.

This project makes use of Razor SDK for precompiling the views.

Supported Application Types

This library supports Console, Web Api, Mvc, Worker Service, WPF, WinForms on .NET Core 3.0, .NET Core 3.1, .NET 5

Applications

  • Email Templating
  • Report Generation & so on

Installing Nuget Package

This library is available as Nuget package

Using .NET CLI
dotnet add package Razor.Templating.Core
Using Package Reference .csproj
<PackageReference Include="Razor.Templating.Core" Version="1.4.0-rc.1" />

Simple Usage:

using Razor.Templating.Core;

var model = new ExampleModel()
{
    PlainText = "This text is rendered from Razor Views using Razor.Templating.Core",
    HtmlContent = "<em>You can use it to generate email content, report generation and so on</em>"
};

var viewData = new Dictionary<string, object>();
viewData["Value1"] = "1";
viewData["Value2"] = "2";

var html = await RazorTemplateEngine.RenderAsync("/Views/ExampleView.cshtml", model, viewData);

Before applying this code, follow this article for working implementation: https://medium.com/@soundaranbu/render-razor-view-cshtml-to-string-in-net-core-7d125f32c79

Dependency Injection [Since v1.4.0-rc.1]

Dependencies can be injected directly into views using @inject in .csthml file. Refer sample application here

In ASP.NET Core, add dependency like below in Startup.cs - ConfigureServices

...
services.AddTransient<ExampleService>();
//add after registering all the dependencies
services.AddRazorTemplating();

or in console or other applications, add as below

// Add dependencies to the service collection
var services = new ServiceCollection();
services.AddTransient<ExampleService>();
// Add RazorTemplating after registering all dependencies
// this is important for the razor template engine to find the injected services
services.AddRazorTemplating(); 
var html = await RazorTemplateEngine.RenderAsync("~/Views/ExampleViewServiceInjection.cshtml");

Razor Views in Library

Razor view files(.cshtml) can be organized in a separate shared Razor Class Libary(RCL). Sample library can be found here

Sample Applications

Please find the sample applications here

Note:

  • Please ensure that the views path is always unique among all the shared template projects.
References:

Thanks to all the great articles and projects which helped to bring this library out!

Product Versions
.NET net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows
.NET Core netcoreapp3.0 netcoreapp3.1
Compatible target framework(s)
Additional computed target framework(s)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (10)

Showing the top 5 NuGet packages that depend on Razor.Templating.Core:

Package Downloads
Sitko.Core.App.Web

Sitko.Core is a set of libraries to help build .NET Core applications fast

FenixAlliance.ACL.Dependencies

Application Component for the Alliance Business Suite.

FinancialModuleAuxiliary

Package Description

Digizuite.Optimizely

The official integration between Digizuite DAM and Optimizely CMS.

Unlog.AspNetCore

the aspnetcore package for UnLog

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.9.0-rc.1 3,834 11/13/2022
1.8.0 47,215 11/5/2022
1.8.0-rc.1 3,852 9/17/2022
1.7.1 227,349 7/2/2022
1.7.1-rc.1 7,361 2/20/2022
1.7.0 439,144 11/13/2021
1.7.0-preview.1 2,124 9/26/2021
1.6.1-rc.1 2,172 1/13/2022
1.6.0 253,288 9/26/2021
1.6.0-rc.2 5,420 5/14/2021
1.6.0-rc.1 424 5/13/2021
1.5.0 249,077 2/27/2021
1.4.0 63,878 12/5/2020
1.4.0-rc.1 576 11/19/2020
1.3.0 7,960 11/17/2020
1.2.1 24,569 9/21/2020
1.2.0 3,357 7/11/2020
1.1.2 1,448 4/13/2020
1.1.0 461 4/13/2020
1.0.1 701 4/3/2020
1.0.0 645 4/3/2020