zoukankan      html  css  js  c++  java
  • [转]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

  • 相关阅读:
    C/C++中extern关键字详解
    C/C++中static关键字详解
    MFC创建工程图解
    C++中L和_T()之区别
    C/C++中const关键字详解
    winfrom中,父窗体中只允许显示一个子窗体的代码怎么写?
    sql 批量插入
    visual studio .net ide : checking into source control now says checkIn Now (recursive)
    1.4 Turbo C V2.0的基本操作
    关于vs2003不能调试的解决方法
  • 原文地址:https://www.cnblogs.com/ishibin/p/2918371.html
Copyright © 2011-2022 走看看