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还可以添加和删除系统的标签
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 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的设计模式综述