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

ASP.NET MVC 中使用Jntemplate

上一篇咱们详细介绍了jntemplate的标签语法,本篇文章将继续介绍如何在ASP.NET MVC 中使用Jntemplate。html

1、使用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步的代码移到基类中。git

2、使用JntemplateViewEngine

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

安装

首先新建一个asp.net mvc项目(参见上面的步骤)。而后咱们先添加JntemplateViewEngine包, 点击项目 - 管理NUGET程序包,点击浏览,输入Jntemplate,安装好包JinianNet.AspNetCoreViewEngine.Jntemplate.web

配置

  1. 打开 StartupConfigureServices方法中增长AddJntemplateViewEngine:
public void ConfigureServices(IServiceCollection services)
{
    //原来的代码
    services.AddJntemplateViewEngine();
}

若是你的视图文件按照默认习惯放在Views目录下,直接照上面的代码配置就能够了,若是是放在其它目录,则须要把目录添加到配置里面。mvc

public void ConfigureServices(IServiceCollection services)
{
    //原来的代码
    services.AddJntemplateViewEngine((o) => {
        o.ViewLocationFormats.Add("/template/{1}/{0}.html");
    });
}

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

  1. Configure方法中增长UseJntemplate,以下如示
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    //原来的代码
    //Use Jntemplate
    app.UseJntemplate(c =>
    {
        //在这里你也能够进行其它参数的配置,好比全局数据
        //这一句很重要,否则会找不到视图
        c.ContentRootPath = env.ContentRootPath;
    });
}

图五

添加Action

打开HomeController.cs ,添加一个Index视图方法(或修改对应视图方法)以下:框架

例:asp.net

public IActionResult Index()
{
    this.Set("Name", "Jntemplate");
    this.Set("Now", DateTime.Now);
    return View();
}

添加视图Index.html

Views\Home目录新建一个视图文件Index.html,内容以下(与第一节的一致):ui

<!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运行查看效果。this

3、总结

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

目录:

  1. .net 开源模板引擎jntemplate 教程:基础篇之入门
  2. .net 开源模板引擎jntemplate 教程:基础篇之语法
  3. .net 开源模板引擎jntemplate 教程:基础篇之在ASP.NET MVC中使用Jntemplate

jntemplate源码下载