程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 關於DotLiquid-Asp.net模板引擎

關於DotLiquid-Asp.net模板引擎

編輯:關於ASP.NET

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved