您现在的位置是:网站首页> .NET Core
在ASP.NET MVC中使用Jntemplate
- .NET Core
- 2022-03-21
- 847人已阅读
一、使用Jntemplate
打开HomeController.cs 添加如下代码
public IActionResult Jntemplate(string path)
{
var t = Engine.LoadTemplate(path);
t.Context.TempData = this.Data;
var result = t.Render();
return Content(result, "text/html");
}
Index Action我们也要稍微改造一样,打开Index Action,改造如下:
public IActionResult Index()
{
this.Data.Set("Name", "Jntemplate");
this.Data.Set("Now", DateTime.Now);
return Jntemplate("Views/Home/Index.html");
}
新建一个视图文件Index.html,原来的Index.cshtml直接删除,并编辑内容如下:
${Name} web 应用Welcome to ${Name}!©${Now.Year}
最后别忘记在 Startup配置一下引擎工作目录,打开Startup,在Configure中添加一句:Engine.Configure(c=>c.ResourceDirectories.Add(env.ContentRootPath));
二、使用JntemplateViewEngine
在上面我们虽然实现了jntemplate的使用,但是步骤相对繁琐,我们可以直接使用Jntemplate视图引擎来简化使用.
安装
首先新建一个asp.net mvc项目(参见上面的步骤)。然后我们先添加JntemplateViewEngine包, 点击项目 - 管理NUGET程序包,点击浏览,输入Jntemplate,安装好包JinianNet.AspNetCoreViewEngine.Jntemplate.
配置
打开 Startup在ConfigureServices方法中增加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}为控制器名。
在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,内容如下(与第一节的一致):
${Name} web 应用Welcome to ${Name}!©${Now.Year}
运行
按F5运行查看效果。
上一篇:.NET Core 基础知识
下一篇:实用代码下载