以前用过一段时间的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了,更有图说明:
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索list
, 页面
, 模板
, 引擎
, smarty
, net 工作流引擎 b s
asp.net,List
,以便于您获取更多的相关知识。