以前听我朋友说起php的模板引擎技术的时候似懂非懂哪时感觉真的很强,一直在想asp.net有这种技术吗?我不知道我的理解是不是对的.其实 asp.net的模板引擎技术就是先建好一个静态的html页面我们称它为模板页,你如果有不同形式的页面哪就得建立不同的静态模板页,然后在后台用文件操作往这个文件里写东西然后在把这个模板页另存到一个静态页面的目录,不好意思可能我的理解太俗,如果有更好的理解和想法可以在apolov发文章告诉我谢谢。现在我附加一下代码

  Default.aspx这个页面只有几个textbox控件和两个按妞控件

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" ValidateRequest="false" Inherits="ToHtml._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"><title>Asp.net生成静态页</title></head><body><form id="form1" runat="server"><div>        标题:<asp:TextBox ID="txtTitle" runat="server" Width="352px"></asp:TextBox><br />        内容:<asp:TextBox ID="txtContent" runat="server" Height="179px" TextMode="MultiLine"Width="350px"></asp:TextBox><br /><br /><asp:Button ID="Button1" runat="server" OnClick="Button1_Click"Text="根据模板生成" />   <br /><br /><br />        Url地址:<asp:TextBox ID="txtUrl" runat="server" ToolTip="请确认Url地址的存在"    Width="359px"></asp:TextBox><br /><br /><asp:Button ID="Button2" runat="server" Text="根据Url地址生成" OnClick="Button2_Click" />      </div></form></body></html>

  要准备的模板页代码,htm文件页面比较简单,如果有兴趣的朋友可以做成更复杂的模板页嘿嘿

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head><title> $title$ 生成静态页title><style type="text/css"><!--.STYLE1 { font-size: 16px; font-weight: bold;}--></style></head><body><br /><br /><table width="100%" border="0" bgcolor="#339900"><tr><td height="34" align="center" bgcolor="#FFFFFF"><span class="STYLE1">$title$ </span>    </td></tr><tr><td height="42" bgcolor="#FFFFFF"><br /><br />    内容:$content$ </td></tr></table>

</body></html>

  后台生成静态页面的代码Default.aspx.cs主要用到了文件操做

ing System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Net;using System.Text;using System.IO;namespace ToHtml{//51aspx.com生成静态页演示文件,转载请保留该信息    public partial class _Default : System.Web.UI.Page    {protected void Page_Load(object sender, EventArgs e)        {        }//根据模板生成,保持在html文件夹中(部分源码搜集于网络)        protected void Button1_Click(object sender, EventArgs e)        {//源码是替换掉模板中的特征字符

string mbPath =Server.MapPath("template.htm");            Encoding code = Encoding.GetEncoding("gb2312");            StreamReader sr = null;            StreamWriter sw = null;string str = null;//读取            try            {                sr = new StreamReader(mbPath, code);                str = sr.ReadToEnd();            }catch (Exception ex)            {throw ex;            }finally            {                sr.Close();            }

//根据时间自动重命名,扩展名也可以自行修改            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".htm";            str = str.Replace("$title$", txtTitle.Text);//替换Title            str = str.Replace("$content$", txtContent.Text);//替换content//生成静态文件            try            {                sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code);                sw.Write(str);                sw.Flush();

            }catch (Exception ex)            {throw ex;            }finally            {                sw.Close();                Response.Write("恭喜"+fileName+"已经生成,保存在htm文件夹下!");            }        }//根据Url地址生成静态页保持        protected void Button2_Click(object sender, EventArgs e)        {            Encoding code = Encoding.GetEncoding("utf-8");            StreamReader sr = null;            StreamWriter sw = null;string str = null;//读取远程路径            WebRequest temp = WebRequest.Create(txtUrl.Text.Trim());            WebResponse myTemp = temp.GetResponse();            sr = new StreamReader(myTemp.GetResponseStream(), code);//读取            try            {                sr = new StreamReader(myTemp.GetResponseStream(), code);                str = sr.ReadToEnd();            }catch (Exception ex)            {throw ex;            }finally            {                sr.Close();            }string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".html";//写入            try            {                sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code);                sw.Write(str);                sw.Flush();            }catch (Exception ex)            {throw ex;            }finally            {                sw.Close();                Response.Write("恭喜" + fileName + "已经生成,保存在htm文件夹下!");            }        }    }}

转载于:https://www.cnblogs.com/waw/archive/2011/08/29/2157104.html

艾伟_转载:ASP.NET模板引擎技术相关推荐

  1. 小议ASP.NET模板引擎技术的使用

    我们将从PHP模板引擎技术谈谈ASP.NET模板引擎技术,希望通过本文的实例和代码,能让大家在今后的开发过程中更加灵活的运用ASP.NET模板引擎技术. 以前听我朋友说起php的模板引擎技术的时候似懂 ...

  2. ASP.NET模板引擎技术

    以前听我朋友说起php的模板引擎技术的时候似懂非懂哪时感觉真的很强,一直在想asp.net有这种技术吗?我不知道我的理解是不是对的.其实 asp.net的模板引擎技术就是先建好一个静态的html页面我 ...

  3. Smarty模板引擎技术二

    Smarty模板引擎技术 内建函数 include_php内建函数 作用:载入一个php文件,将载入的文件的内容赋值给一个变量 注意:该内建函数只能在2.0中使用,如果使用的话,必须得实例化Smart ...

  4. php模板引擎如何实现,php模板引擎技术简单实现

    用了smarty,tp过后,也想了解了解其模板技术是怎么实现,于是写一个简单的模板类,大致就是读取模板文件->替换模板文件的内容->保存或者静态化 tpl.class.php主要解析 as ...

  5. freemarker ftl模板_Web开发人员必会的模板引擎技术之Freemarker

    曾几何时,Web开发是个多么高大上的名字,程序猿们都以能搞定Web技术为荣,此时还没有前后端之说.然而随着互联网的发展,社会分工进一步细化,职业岗位也更加细分,慢慢开始有了前端攻城狮和后端攻城狮,技术 ...

  6. Razor 也可说是一个asp.net模板引擎,用不着学习 T4 了

    Razor 是 ASP.NET MVC 3.0 支持的一个新的视图引擎,但只要你愿意,也可以摆脱 MVC 框架,而把它用作普通的文本模板引擎.这样也许我们不用学习流行的 T4 了?参见思归的博客:ht ...

  7. java velocity是什么意思_基于 Java 的模板引擎Velocity快速入门

    最近使用Velocity模板引擎,写一个maven项目Coding生成工具. 对基于Java的模板引擎Velocity的demo总结如下: Step1. 创建Maven项目,添加如下velocity的 ...

  8. 艾伟_转载:VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中实现URL导向》篇

    本系列文章导航 VS 2010 和 .NET 4.0 系列之<ASP.NET 4 中的SEO改进 >篇 VS 2010 和 .NET 4.0 系列之<干净的Web.Config文件 ...

  9. 艾伟_转载:从ASP.NET的PHP执行速度比较谈起

    上星期我在InfoQ发表了一篇新闻,对Joe Stagner在博客上发表的三篇关于ASP.NET与PHP性能对比的文章进行了总结.写新闻其实挺不爽的,因为不能夹杂个人的看法,只能平铺直叙陈述事实.当然 ...

最新文章

  1. JHipster开发环境安装
  2. 34岁,外企倒闭成功上岸大厂,50K,附面试秘籍
  3. PJzhang:英国通信总部GCHQ开源产品-网络瑞士军刀CyberChef
  4. 区间数多属性决策matlab,区间数多属性决策的改进理想解法
  5. c#设计一个方法,与使用
  6. Precedence Problems of C Operators
  7. ctrl+下箭头无法到最底端_设计院10年精选,最常用的CAD命令,绘图牛人都在用...
  8. 免费送《你的知识需要管理》签名书活动,秒杀
  9. Nodejs实现的一个静态服务器例子
  10. apache重写模块开启
  11. 20160504课堂作业
  12. linux免费私人云盘软件,Appnode+kodexplorer免费搭建私有云盘
  13. 一种基于折射反向学习机制与自适应控制因子的改进樽海鞘群算法
  14. bootstrap登录模板
  15. ONF与天地互连共同成立开放SDN推广中心(OSPC)
  16. 有参构造法和无参构造法
  17. 论文翻译神器:SCITranslate 10.0,一键翻译整篇文献
  18. 什么是CRC和CRC检验?
  19. 互联⽹名词⼤全——⽹络媒体/⼴告/营销篇
  20. cesium fog雾特效参数设置

热门文章

  1. python123子字符串输出_Python--字符串函数方法全解
  2. 如何阅读一本书 pdf_如何2个小时内快速阅读一本书?
  3. 不需要网络的调频收音机_测试工程师真的不需要懂网络知识么?
  4. Python基础数据类型之字符串(二)
  5. LetCode: 5. 最长回文子串
  6. 树形DP入门题目推荐以及解析
  7. 在系统出现未处理的错误时,在Global的Application_Error记录下错误
  8. 第一章 python学习,个人对计算机硬件的一些理解
  9. 使用Mysql数据库完成增删改查综合案例(JSP页面)
  10. TC SRM 562 div2 B 题