佛山软件定制

ASP.Net中模板解决方案

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

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

一个模板页内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<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到页面上

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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   New.min  阅读(634)  评论(2编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

导航

点击右上角即可分享
微信分享提示