Filter by title

Text Templating

Introduction

ABP provides a simple, yet efficient text template system. Text templating is used to dynamically render contents based on a template and a model (a data object):

Template + Model =renderer=> Rendered Content

It is very similar to an ASP.NET Core Razor View (or Page):

RAZOR VIEW (or PAGE) + MODEL ==render==> HTML CONTENT

You can use the rendered output for any purpose, like sending emails or preparing some reports.

Template rendering engine is very powerful;

  • It supports conditional logics, loops and much more.
  • Template content can be localized.
  • You can define layout templates to be used as the layout while rendering other templates.
  • You can pass arbitrary objects to the template context (beside the model) for advanced scenarios.

ABP provides two templating engines;

You can use different template engines in the same application, or even create a new custom template engine.

Default Rendering Engine

A template can select its rendering engine explicitly with WithScribanEngine, WithRazorEngine or WithRenderEngine. If it does not, the renderer uses AbpTextTemplatingOptions.DefaultRenderingEngine.

The Scriban module selects Scriban as the default engine. The Razor module selects Razor only if no default has already been configured. You can explicitly select the application-wide default:

Configure<AbpTextTemplatingOptions>(options =>
{
    options.DefaultRenderingEngine = ScribanTemplateRenderingEngine.EngineName;
});

An engine selected on a template definition takes precedence over this global default.

Source Code

Get the source code of the sample application developed and referred through this document.

See Also

Contributors


Last updated: July 17, 2026 Edit this page on GitHub

Was this page helpful?

Please make a selection.

To help us improve, please share your reason for the negative feedback in the field below.

Please enter a note.

Thank you for your valuable feedback!

Please note that although we cannot respond to feedback, our team will use your comments to improve the experience.

ABP Community Talks
Low-Code, High Precision
13 Aug, 17:00
Online
Watch the Event
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.