发表于2013-10-20 16:05:21
在Asp.net使用JNTemplate,我们一般会在后台设定一些数据或方法,以便在模板中调用,大多数数据会跟具体的页面有关,如:
JNTemplate.Template template = new Template("<!DOCTYPE html><html><head><title>$title</title></head><body>$msg</body></html>"); template.Set("title", "极念模板引擎"); template.Set("msg", "asp.net 模板引擎 - JNTemplate,基于asp.net 的轻量级模板引擎!"); template.Render(Response.Output);
但是也有部分数据,在大多数页面甚至所有页面都是需要调用的!比如站点的名称,创建时间,站长姓名,联系方式等,像这些通用数据,我们不需要每次都赋值,只需要配置下Engines即可!
配置方法如下:打开网站根目录下的Global.asax文件,没有的话就新建一个!然后在Application_Start中添加如下内容:
TemplateContext ctx = new TemplateContext(); ctx.Charset = System.Text.Encoding.UTF8;//默认编码 ctx.Paths.AddRange(new string[]{ //当模板未指定完整目录时(包括Load等标签),将按顺序在以下文件夹中查找 System.Web.HttpRuntime.AppDomainAppPath + @"\template\default", System.Web.HttpRuntime.AppDomainAppPath + @"\template\public", System.Web.HttpRuntime.AppDomainAppPath + @"\template\path1", }); ctx.TempData["Name"] = "极念网";//通用数据 ctx.TempData["Email"] = "i@jiniannet.com";//通用数据 JinianNet.JNTemplate.Engine engine = new JNTemplate.Engine(ctx); JinianNet.JNTemplate.BuildManager.Engines.Add(engine);
使用:
JNTemplate.ITemplate template = JNTemplate.BuildManager.CreateTemplate("default.html") as JNTemplate.Template; template.Set("title", "极念模板引擎"); template.Set("msg", "asp.net 模板引擎 - JNTemplate,基于asp.net 的轻量级模板引擎!"); template.Render(Response.Output);
如果找不到Paths属性,请检查模板引擎版本是否不低于1.1 beta(详细版本号:1.1.3.1)版本并至https://github.com/jiniannet/jntemplate 获取最新版本!