[转]ASP.NET生成HTML初级解决方案

其实ASPX网页和HTML网页本人觉得最大的区别在于功能和功耗。

很容易理解功能大的功耗就会大,所以使用ASPX还是HMTL本人觉得还是看情况而定。

ASPX对动态的要求多些,HTML就相对静态了,不能说谁好谁坏,要适情况选择。比如,新闻内容页面,简单就些图片和固定的格式正文,这样用HTML显示出来对服务器可是节约很大一笔开销。退一步说,把正文内容保存在网页里,只保持HTML网页名在数据库中,对数据库也是一大解放。

这里只是介绍生成HTML过程,并没有和数据库联系上,其实和数据库的联系也就一文件名,所以从略。

这里是文件目录,其中HTM文件夹就是用来存放生成的HTML网页,方便调用。

先做一个HTML模板template.htm,用来放置标题和正文,还可以加些超链接什么的充实一下,这里从略了。

很简单:

<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>

其中$title$ 和 $content$ 就是需要我们动态替换的。

现在是主页面。

这里我标题用以一般的文本框,正文用到了FREETEXTBOX,这个是个功能强大的文本框控件,具体用法和一般的差不多。

前台页面如图:

对按钮事件进行编辑:

 //源码是替换掉模板中的特征字符

        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$", ftbContent.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("恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已经生成,保存在htm文件夹下!");
        }

最后值得提一下的是,要引用几个命名空间:

using System.Net;
using System.IO;
using System.Text;

最后生成网页,名字是时间命名的:

出处:http://www.cnblogs.com/as285996985/archive/2009/06/14/1503046.html

原文地址:https://www.cnblogs.com/ishibin/p/2918371.html