一、簡介
模板引擎是Web開發中非常重要的一環,它負責將頁面上的動態內容呈現出最終的結果展現給前端用戶,在asp.net mvc中,我們最熟悉的就是Razor了,作為官方的視圖引擎(視圖引擎不等同於模板引擎),它的受眾十分廣闊。但是在部分場景,比如BLOG,CMS甚至非asp.net mvc(此處asp.net mvc特指官方MVC框架)環境中,我們往往可能需要第三方的模板引擎來解析我們頁面(或者視圖),在這一塊,JNTemplate,DotLiquid,Nustache,Razor,Saprk都是不錯的選擇,JNTemplate v2.0 做為使用il emit實現的編譯型模板引擎,在眾多模板引擎中表現優秀。
本系列文章將通過基礎篇與進階篇二部分,詳細介紹 jntemplate的基本使用與進階技巧。
二、准備開始
在開始之前,首先我們要准備本地的開發環境,jntemplate v2.0.0 所支持的環境為
- .net framework 4.0 +
- .net core 2.1 +
- .netstandard 2.1 +
- .net 5
建議安裝使用.net 5 環境(下載地址:https://dotnet.microsoft.com/download/dotnet/5.0)
IDE建議使用Visual Studio 2019或者vscode,如果都沒有,記事本也行。
三、 hello World
在下面我們通過一個簡單的hello World來了解jntemplate的用法:
-
打開Visual Studio 2019,新建一個命令行項目sample!
-
點擊菜單:項目=>管理Nuget程序包,搜索 jntemplate 並安裝(jiniannet.jntemplate),如圖一所示。
- 打開
Program.cs
, 修改Main方法里面的代碼如下:
var template = Engine.CreateTemplate("Hello $name!");
template.Set("name", "World");
template.Render(Console.Out);
如圖二所示:
4.按F5運行程序,查看程序運行結果。
恭喜。我們的hello world項目完成了,程序正確解析了模板並輸出了結果,我們來重點看一下這三句代碼:
Engine.CreateTemplate("Hello $name!");
表示從文本"Hello $name!" 創建一個模板對象,如果是從一個文件創建模板可以使用Engine.LoadTemplate("文件路徑")
template.Set("name","World");
將一個名稱為name的變量給遞給模板。template.Render(Console.Out);
解析呈現模板內容。
在這里,直接將模板解析結果呈現到了控制台,如果需要輸出到文本,可以直接使用
string result = template.Render();
如果想保存到文件,可以參考下面的寫法
using (var sw = File.CreateText(@"c:\wwwroot\index.html"))
{
template.Render(sw);
}
是不是很簡單?
五、總結
jntemplate 語法簡單,入門容易 ,輕量快速。而且不僅僅只能用來做模板引擎,原則上可以做任何純文本內容的解析,比如做郵件發送,代碼生成器等等。
下一節我們將詳細講解模板語法。
注:源代碼可以在Gitee或者Github上獲取。