• Asp.net生成静态页面原理


    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.IO;
    using System.Text;

    namespace menutest
    {
     
    /// <summary>
     
    /// Conn 的摘要说明。
     
    /// </summary>
     // by kyo
     
    // 此类是生成静态网页的小程序 
     public class Conn
     {
      
    public Conn()
      {
      
      }
      
    public static bool WriteFile(string strText,string strContent,string strAuthor)
      {
       
    string path = HttpContext.Current.Server.MapPath("/menutest/");
       Encoding code 
    = Encoding.GetEncoding("gb2312");
       
    // 读取模板文件
       string temp = HttpContext.Current.Server.MapPath("/menutest/news/text.html");
       StreamReader sr
    =null;
       StreamWriter sw
    =null;
       
    string str="";
       
    try
       {
        sr 
    = new StreamReader(temp,code);
        str 
    = sr.ReadToEnd(); // 读取文件
       }
       
    catch(Exception exp)
       {
        HttpContext.Current.Response.Write(exp.Message);
        HttpContext.Current.Response.End();
        sr.Close();
       }


       
    //string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";
       string htmlfilename="kyo.html";
       
    // 替换内容
       
    // 这时,模板文件已经读入到名称为str的变量中了
       str = str.Replace("ShowArticle",strText); //模板页中的ShowArticle
       str = str.Replace("biaoti",strText);
       str 
    = str.Replace("content",strContent);
       str 
    = str.Replace("author",strAuthor);
       
    // 写文件
       try
       {
        sw 
    = new StreamWriter(path + htmlfilename , false, code);
        sw.Write(str);
        sw.Flush();
       }
       
    catch(Exception ex)
       {
        HttpContext.Current.Response.Write(ex.Message);
        HttpContext.Current.Response.End();
       }
       
    finally
       {
        sw.Close();
       }
       
    return true;
      }
     }
    }
    //利用System.IO中的类读写模板文件,然后用Replace替换掉模板中的标签,写入静态html.
     
    记得去年第一次做生成静态页的时候,IO 操作老出错,好像是什么文件正在使用,线程正在终止。那时候大多都在CSND上找解决方法自己的园子都没怎么看着,现在遇到问题,CSDN、CNBLOGS、ASP.NET、MSND……  还是觉得园子里的学习份围最好。

  • 相关阅读:
    centos安装字体
    【C++ Primer | 15】访问控制与继承、继承中的类作用域
    树与二叉树 | 哈夫曼树
    【C++ Primer | 10】泛型算法
    【APUE | 03】文件I/O
    二叉树
    图论算法
    【深度探索C++对象模型 | 02】构造函数语意学
    【APUE | 08】进程控制
    c++重点理解
  • 原文地址:https://www.cnblogs.com/netwom/p/961526.html
Copyright © 2020-2023  润新知