關於DotLiquid-Asp.net模板引擎

來源:互聯網
上載者:User

以前用過一段時間的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了,更有圖說明:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.