一、簡介
模板引擎是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上獲取。