佛山软件定制

ASP.Net中模板解决方案

最近项目有需要开发一个模板的功能,在asp.net mvc项目中使用模板在不压缩代码的情况下,性能能提升0.02s左右(本地IIS+FF),

如果压缩代码性能差在1s左右。

一个模板页内容如下:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>${title}-${sitename}</title>
    ${css}
</head>
<body>
 <!-- 调用头部部分模板 -->
 ${partial:"partial.header.html"}
 <p>
    ${content}
 </p>
 <p>联系方式:<br />
 MSN:${msn}<br />
 QQ:${qq}</p>
</body>
</html>

${}表示一个标签,${partial:""}标示为一个部分的视图

这样我们可以创建/template/#default/文件夹

文件夹加上#可以防止别人通过http浏览或下载模板

分别创建default.html和partial.header.html模板,并写入含有标签的Html代码

在后台创建 TemplatePage对象,传入模板的ID或标签数据,使用ToString()返回HTML,

我们可以扩展一个Render方法来输出Html到页面上

代码如下:

                string templateID=TemplateContext.Utility.GetTemplateID("Templates/#default/default.html");
                TemplatePage page = new TemplatePage(templateID,
                    new
                    {
                        title = "网站首页",
                        headertext = "测试模板 by opsoft",
                        css = "/images/style.css",
                        content = @"此Demo仅供演示,详细使用方法请看代码或上网站www.ops.cc查询。",
                        msn="new.min@msn.com",
                        qq="959398298"
                    });

                
                page.Render();

这个就完成了模版与内容的解析工作,在这之前我们还需要注册模板

TemplateContext.RegisterTemplate(string basedirectory)

参数为模版目录,这样就完成注册了,还可以使用模板缓存或压缩

(默认压缩和缓存)

缓存模板设置:Config.EnableCache=true;

压缩模板设置:Config.EnableCompress=true;

通过TemplateContext.Cache还可以添加和删除系统的标签

点击这里下载Demo

posted on 2011-06-07 13:33  New.min  阅读(632)  评论(2编辑  收藏  举报

导航