asp.net mvc 中使用jntemplate

上一篇我们详细介绍了jntemplate的标签语法,本篇文章将继续介绍如何在asp.net mvc 中使用jntemplate。

一、使用jntemplate

  1. 首先我们先新建一个asp.net mvc项目,打开vs2019,依次点击文件新建项目,选择asp.net coreweb应用(模型-视图-控制器),然后依次下一步,创建一个web应用。
  1. 点击项目管理nuget程序包,点击浏览,输入jntemplate,安装好包jiniannet.jntemplate.
  1. 打开homecontroller.cs 添加如下代码
public variablescope data { get; set; } = new variablescope(null);
public iactionresult jntemplate(string path)
{
    var t = engine.loadtemplate(path);
    t.context.tempdata = this.data;
    var result = t.render();
    return content(result, "text/html");
}
  1. index action我们也要稍微改造一样,打开index action,改造如下:
public iactionresult index()
{
    this.data.set("name", "jntemplate");
    this.data.set("now", datetime.now);
    return jntemplate("views/home/index.html");
}
  1. 新建一个视图文件index.html,原来的index.cshtml直接删除,并编辑内容如下:
<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>${name} web 应用</title>
</head>
<body>
    <h1>welcome to ${name}!</h1>
    <p>&copy;${now.year}</p>
</body>
</html>
  1. 最后别忘记在 startup配置一下引擎工作目录,打开startup,在configure中添加一句:engine.configure(c=>c.resourcedirectories.add(env.contentrootpath));
  1. 好了,我们的jntemplate web应用已经完成了,按f5,运行看一下次果吧。

小提示:为了方便使用,我们可以新建一个控制器基类,将第3步的代码移到基类中。

二、使用jntemplateviewengine

在上面我们虽然实现了jntemplate的使用,但是步骤相对繁琐,我们可以直接使用jntemplate视图引擎来简化使用.

安装

首先新建一个asp.net mvc项目(参见上面的步骤)。然后我们先添加jntemplateviewengine包, 点击项目管理nuget程序包,点击浏览,输入jntemplate,安装好包jiniannet.aspnetcoreviewengine.jntemplate.

配置

  1. 打开 startupconfigureservices方法中增加addjntemplateviewengine:
public void configureservices(iservicecollection services)
{
    //原来的代码
    services.addjntemplateviewengine();
}

如果你的视图文件按照默认习惯放在views目录下,直接照上面的代码配置就可以了,如果是放在其它目录,则需要把目录添加到配置里面。

public void configureservices(iservicecollection services)
{
    //原来的代码
    services.addjntemplateviewengine((o) => {
        o.viewlocationformats.add("/template/{1}/{0}.html");
    });
}

{0}为视图名,{1}为控制器名。

  1. configure方法中增加usejntemplate,如下如示
public void configure(iapplicationbuilder app, iwebhostenvironment env)
{
    //原来的代码
    //use jntemplate
    app.usejntemplate(c =>
    {
        //在这里你也可以进行其它参数的配置,比如全局数据
        //这一句很重要,不然会找不到视图
        c.contentrootpath = env.contentrootpath;
    });
}

添加action

打开homecontroller.cs ,添加一个index视图方法(或修改对应视图方法)如下:

例:

public iactionresult index()
{
    this.set("name", "jntemplate");
    this.set("now", datetime.now);
    return view();
}

添加视图index.html

views\home目录新建一个视图文件index.html,内容如下(与第一节的一致):

<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>${name} web 应用</title>
</head>
<body>
    <h1>welcome to ${name}!</h1>
    <p>&copy;${now.year}</p>
</body>
</html>

运行

f5运行查看效果。

三、总结

本文介绍了在asp.net mvc中如何使用jntemplate,其它mvc框架、开发框架,使用方法类似。至本篇为止,.net 开源模板引擎jntemplate 教程的基础篇已经全部写完,在接下来的时间我将继续介绍jntemplate的进阶用法(.net 开源模板引擎jntemplate 教程之进阶篇):包括自定义配置,预编译文件,自定义加载器,自定义标签等内容,感兴趣的朋友不要错过 。

目录:

  1. .net 开源模板引擎jntemplate 教程:基础篇之在asp.net mvc中使用jntemplate

jntemplate源码下载

  • gitee:
  • github:
  • 文档: