模板引擎小例子

一般处理程序中可以使用模板引擎来实现前端与后端代码的分开维护工作。工具下载地址:http://www.castleproject.org/download/  (NVelocity.dll)引用即可。

       //对象
            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等。

原文地址:https://www.cnblogs.com/len0031/p/4176866.html