快速开始

  1. 我们可以通过 Engine.LoadTemplate(...)快速从一个文件来创建一个模板,也可以通过 Engine.CreateTemplate(...)从指定模板内容创建模板。
  2. 通过ITemplate.Set(...) 可以为模板赋值
  3. 调用 ITemplate.Rebder(...) 获取呈现结果

示例

模板文件default.html

<p>你好,$name</p>

后台代码

var template = Engine.LoadTemplate("c:\\default.html");
template.Set("name","jntemplate");
var result = template.Render();

或者

var template = Engine.CreateTemplate("<p>你好,$name</p>");
template.Set("name","jntemplate");
var result = template.Render();

output:

<p>你好,jntemplate</p>

说明


我们可以通过扩展方法template.Render()直接获取生成的文本内容,也可以通过template.Render(TextWriter:writer)直接写入输出流,如:

  • 在控制台程序中
var template = Engine.CreateTemplate("<p>你好,$name</p>");
template.Set("name","jntemplate");
template.Render(Console.Out);
  • 在WebForm中
var template = Engine.CreateTemplate("<p>你好,$name</p>");
template.Set("name","jntemplate");
template.Render(Response.Output);

更简洁的用法

v2.2.5 开始,JNTemplate 支持使用更加简洁的Engine.Parse写法,方便在 NET Minimal API 中使用。

支持的对象可以是字典IDictionary<string, object> 如:

示例代码

var result = Engine.Parse($"hello,$name", new Dictionary<string, object>{
    { "name","jntemplate"},
});

输出

hello,jntemplate

或者匿名对象:

示例代码

var result = Engine.Parse($"hello,$UserName", new {
    UserName = "jntemplate"
});

输出

hello,jntemplate

或者其它任何自定义的类,默认情况下,常规类可以通过类名来访问对象,泛型类或者其它特殊类,可以通过$Model来访问对象

示例代码

var result = Engine.Parse($"hello,$User.UserName", new User { 
    UserName = "jntemplate"
});

如果喜欢使用早期的方式,所有的对象都通过$Model来访问,可以通过下面的配置来实现:

配置代码

//注意此代码全局只需要配置一次,也可以改成你喜欢的任一名称
Engine.Configure(o => o.ModelName = "Model"); 
Last Updated:
Contributors: hnvvv, 翅膀的初衷