With no external dependency, this component aims to process a Razor-like string template.
- Define a template:
var template = @"
Hello @user.name!
@if (@user.showId == true) { Your ID is: @user.id. }
Mail addresses:
@foreach(var email in user.Emails)
{
@email.Value
}
";
- Define a model to bind:
var model = new {
user = new {
name = "Joseph Climber",
id = 12345,
showId = true,
Emails = new List<object>()
{
new { Value = "[email protected]" },
new { Value = "[email protected]" },
}
}
};
- Bind:
ITemplateEngine engine = new RazorAlikeEngine();
string result = engine.Run(template, model);
- Result:
Hello Joseph Climber!
Your ID is: 12345.
Mail addresses:
foo@bar.com
bar@foo.com
- ✅ if statement (single-line)
- ❌ if statement (multiline)
- ❌ for loop statement (single-line)
- ✅ for loop statement (multiline)