谁是谁的谁 发表于 2012-4-6 16:45:12

静态网页的生成

生成单个的静态页面不是难点,难的是各个静态页面间的关联和链接如何保持完整;   
特别是在页面频繁更新、修改、或删除的情况下;
ASP.Net生成静态HTML页   
在Asp中实现的生成静态页用到的FileSystemObject对象!   
在.Net中涉及此类操作的是System.IO   
以下是程序代码   注:此代码非原创!参考别人代码   
   
      CODE:         
//生成HTML页   
      public   static   bool   WriteFile(string   strText,string   strContent,string   strAuthor)   
      {   
      string   path   =   HttpContext.Current.Server.MapPath("/news/");   
      Encoding   code   =   Encoding.GetEncoding("gb2312");   
      //   读取模板文件   
      string   temp   =   HttpContext.Current.Server.MapPath("/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";   
      //   替换内容   
      //   这时,模板文件已经读入到名称为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;   
   
此函数放在Conn.CS基类中了   
在添加新闻的代码中引用   注:工程名为Hover   
   
          if(Hover.Conn.WriteFilethis.Title.Text.ToString),this.Content.Text.ToString),this.Author.Text.ToString)))   
          {   
            Response.Write("添加成功");   
          }   
          else   
          {   
            Response.Write("生成HTML出错!");   
          }   
      
   
   
模板页Text.html代码   
   
   
      CODE:         
<!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >   
<HTML>   
<HEAD>   
      <title>ShowArticle</title>   
      <body>   
biaoti   
<br>   
content<br>   
author   
</body>   
</HTML>   
biaoti   
<br>   
content<br>   
author   
</body>   
</HTML>   
      
提示添加成功后会出以当前时间为文件名的html文件!上面只是把传递过来的几个参数直接写入了HTML文件中,在实际应用中需要先添加数据库,然后再写入HTML文件   
你可以试一下。

世界一看 发表于 2012-4-6 22:08:51

支持你加分

快乐向善 发表于 2012-4-7 10:21:52

学习来了~~~

dgdgrdaf 发表于 2012-4-8 20:35:24

就来看看学习

lovexiaolong 发表于 2012-4-9 09:49:36

就来看看学习

yhlm5201 发表于 2012-4-9 10:47:37

谢谢分享
页: [1]
查看完整版本: 静态网页的生成