1. 程式人生 > >NVelocity模板引擎在專案中的應用

NVelocity模板引擎在專案中的應用

本文要說明的是如果要在專案中加入NVelocity引擎模板。而且在使用和操作起來更加的方便!

        NVelocity是一個基於.NET的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由.NET程式碼定義的物件。至於其他的一些別的NVelocity的的解釋、和一些用法這裡就不在提及。

        具體的使用方法:

        1,定義Velocity輔助類(VelocityHelper.cs)

                  提供下載  當然,這個輔助類需要新增NVelocity.dll的引用。

        2,aspx頁面和Template的結構說明

                  這個其實是需要根據個人喜好來定!為了更好的能看清自己的結構,我是這樣來放置的!如圖:

                  

      Template放置所有 *.vm模板

      其中:Browse資料夾放置前臺頁面的模板,Manage資料夾放置後臺頁面模板。需要注意的是這連個資料夾下的Default資料夾只是一個區分前臺或者後臺模板的一個標識,在呼叫時來區分。

      Manage資料夾放置管理的*.aspx頁面

      Manage資料夾下的頁面例如LinkTypeEdit.aspx所呼叫的模板就為Template/Defalut/LinkTypeEdit.vm。名稱依次對應,當然,對應不是必須的。

      根目錄放置前臺*.aspx頁面

      前臺頁面呼叫的模板為Template/Browse/Defalut/下的模板,和管理頁面一樣也是名稱相互對應。

     3,呼叫、賦值方法

     在專案中加入VelocityHelper.cs這個輔助類。

     我們以Defalut.aspx為例來大概講解,首先我們先編輯Template/Browse/Defalut/Default.vm,這是我們首頁的模板。

     

     可以看到我們在兩個地方使用了模板的變數,分別是$PageTitle,$hello。這樣們肯定就需要在Default.aspx中利用引擎模板來做為變數賦值、顯示模板等操作。

     下面就讓我們來處理一下Defalut.aspx頁面,因為顯示完全是使用模板,所以Default.aspx頁面時不需要有任何的東西,只留下@ Page 的一行就可以。後臺程式碼在Page_Load事件中,我們就要作出相應的操作了!

protected void Page_Load(object sender, EventArgs e){   

     //建立輔助類   

     Luz.Web.Util.VelocityHelper vh = new Luz.Web.Util.VelocityHelper();   

     //模板位置   

     string templatePath = "/Template/Browse/Defalut/";   

     //通過模版位置初始化引擎   

     vh.Init(templatePath);   

     //為變數賦值,第一個引數是變數的名稱,也就是你在模版也中寫的變數的名稱,注意沒有"$";第二個引數是值,Object型別。   

     vh.PutSet("PageTitle", "Hi I am Title");   

    vh.PutSet("hello", "Hello NVoleCity");   

     //顯示模板   

      vh.Display("Default.vm");   

 }  

 protected void Page_Load(object sender, EventArgs e){
      //建立輔助類
      Luz.Web.Util.VelocityHelper vh = new Luz.Web.Util.VelocityHelper();
      //模板位置
      string templatePath = "/Template/Browse/Defalut/";
        
      //通過模版位置初始化引擎
      vh.Init(templatePath);
        
      //為變數賦值,第一個引數是變數的名稱,也就是你在模版也中寫的變數的名稱,注意沒有"$";第二個引數是值,Object型別。
      vh.PutSet("PageTitle", "Hi I am Title");
     vh.PutSet("hello", "Hello NVoleCity");
        
      //顯示模板
       vh.Display("Default.vm");
  }

     這樣,執行一下看看,是不是模板已經顯示出來,而且$PageTitle和$hello已經被替換成了我們在Page_Load事件中為它賦的值。當然,賦值的時候你可以是任何型別,包括List泛型(模板中使用#foreach遍歷)等