Welcome 微信登录

首页 / 网页编程 / ASP.NET / 关于DotLiquid-Asp.net模板引擎

关于DotLiquid-Asp.net模板引擎2014-08-27以前用过一段时间的PHP,感觉非常不错,其中最让我难忘的就是Smarty模板引擎,当时就微微地想Asp.net里有没有像这样的模板引擎呢?不过由于之后的工作内容都用不到,或者说没有想到用模板,这想法也没导致我做一些事情,就不了了之了。

现在也是工作需要,用模板是一个不错的选择。之前没用过这种东西,盲搜一片没找到自己想要的,于是自己就试着写写,大思路用的是Smarty的,用html页面做为模板,生成aspx页面,把数据放在HttpContext.Items里,代码如下:

html模板:

<div>{$title}</div><select>{foreach $l in $list}<option value="{$l.Age}">{$l.Name}</option>{/foreach}</select>
生成的aspx页面:

<%@ Page Language="C#" %><%if (HttpContext.Current.Items["SMARTY_TEMPLATE_DIR"]==null){Response.Write("no direct access allowed");Response.End();}%><div><%=DotSmarty.Smarty.GetTemplateArg("title") %></div><% var list = DotSmarty.Smarty.GetTemplateArg("list") as System.Collections.Generic.IList<SmartyTest.User>; %><select><% foreach (var l in list){ %><option value="<%=l.Age %>"><%=l.Name %></option><%}%></select>
调用如:

Smarty smarty = new Smarty();List<User> list = new List<User>();list.Add(new User() {Age=1, Name="name111"});list.Add(new User() { Age = 2, Name = "name222" });smarty.Assign("title", "标题");smarty.Assign("list", list, TemplateArgType.List);smarty.Display("user/userInfo.htm");
看起来很像Smarty,可越写难度越大!唉,能力有限,将来有能力再说吧,现在只能放弃。

前几天幸运地听说了DotLiquid,网址是:http://dotliquidmarkup.org。上面曰:“DotLiquid is a templating system ported to the .net framework from Ruby’s Liquid Markup.It’s easy to learn, fast and safe"。我想我终于找到了asp.net中的smarty了,更有图说明: