模板引擎小例子

通常處理程序中可使用模板引擎來實現前端與後端代碼的分開維護工做。工具下載地址:http://www.castleproject.org/download/  (NVelocity.dll)引用便可。html

       //對象
            Person person = new Person();
            person.Name = "yzk";
            person.Age = 30;
       //list集合
            Dictionary<string, string> dict = new Dictionary<string, string>();
            dict["tom"] = "斯坦福";
            dict["jim"] = "加里敦";
            dict["yzk"] = "哈佛";

         //把類的定義和對象的聲明初始化放到一塊兒
        //匿名類
        var news = new { Title = "特大喜訊",Author="楊中科",PostDate="2013-11-08",Msg="今天晚上會公佈喜訊細節!" };
        string s = news.PostDate;前端

            VelocityEngine vltEngine = new VelocityEngine();
            vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");
            vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夾
            vltEngine.Init();

            VelocityContext vltContext = new VelocityContext();
            vltContext.Put("p", person);//設置參數,在模板中能夠經過$data來引用
       vltContext.Put("p", dict);//設置參數,在模板中能夠經過$data來引用 Template vltTemplate = vltEngine.GetTemplate("test.htm"); System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString(); context.Response.Write(html);

 

<ul>
    #foreach($p in $persons)
        #if($p.Age>20)
          <li style="color:Red">$p.Name的年齡是$p.Age</li>
        #else
          <li style="color:Green">$p.Name的年齡是$p.Age</li>
        #end
    #end
</ul>

 

在htm中用$p接受後臺的數據,前臺能夠接受字符串$p、對象$p.Name、索引$p.tom等。後端

相關文章
相關標籤/搜索