欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.net 开源模板引擎jntemplate 教程:基础篇之在ASP.NET MVC中使用Jntemplate

程序员文章站 2022-05-18 14:20:08
在ASP.NET MVC 中使用Jntemplate 上一篇我们详细介绍了jntemplate的标签语法,本篇文章将继续介绍如何在ASP.NET MVC 中使用Jntemplate。 一、使用Jntemplate 首先我们先新建一个asp.net mvc项目,打开VS2019,依次点击文件-新建-项 ......

asp.net mvc 中使用jntemplate

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

一、使用jntemplate

  1. 首先我们先新建一个asp.net mvc项目,打开vs2019,依次点击文件-新建-项目,选择asp.net coreweb应用(模型-视图-控制器),然后依次下一步,创建一个web应用。

.net 开源模板引擎jntemplate 教程:基础篇之在ASP.NET  MVC中使用Jntemplate

  1. 点击项目 - 管理nuget程序包,点击浏览,输入jntemplate,安装好包jiniannet.jntemplate.

.net 开源模板引擎jntemplate 教程:基础篇之在ASP.NET  MVC中使用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));

.net 开源模板引擎jntemplate 教程:基础篇之在ASP.NET  MVC中使用Jntemplate

  1. 好了,我们的jntemplate web应用已经完成了,按f5,运行看一下次果吧。

.net 开源模板引擎jntemplate 教程:基础篇之在ASP.NET  MVC中使用Jntemplate

小提示:为了方便使用,我们可以新建一个控制器基类,将第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;
    });
}

.net 开源模板引擎jntemplate 教程:基础篇之在ASP.NET  MVC中使用Jntemplate

添加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:
  • 文档: