找回密码
 开放注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

搜索
查看: 1380|回复: 5

静态网页的生成

[复制链接]

6

主题

3

回帖

44

牛毛

初生牛犊

积分
44
发表于 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文件   
你可以试一下。

0

主题

404

回帖

77

牛毛

初生牛犊

积分
77
发表于 2012-4-6 22:08:51 | 显示全部楼层 来自 安徽省芜湖市
支持你加分

5

主题

30

回帖

47

牛毛

初生牛犊

积分
47
发表于 2012-4-7 10:21:52 | 显示全部楼层 来自 福建省厦门市
学习来了~~~

0

主题

2

回帖

6

牛毛

初生牛犊

积分
7
发表于 2012-4-8 20:35:24 | 显示全部楼层 来自 山东省青岛市
就来看看学习

33

主题

4

回帖

12

牛毛

初生牛犊

积分
12
发表于 2012-4-9 09:49:36 | 显示全部楼层 来自 上海市
就来看看学习

0

主题

171

回帖

52

牛毛

初生牛犊

积分
52
发表于 2012-4-9 10:47:37 | 显示全部楼层 来自 北京市
谢谢分享
您需要登录后才可以回帖 登录 | 开放注册

本版积分规则

帮助|Archiver|小黑屋|通信管理局专项备案号:[2008]238号|NB5社区 ( 皖ICP备08004151号;皖公网安备34010402700514号 )

GMT+8, 2025-1-27 13:43 , Processed in 0.146460 second(s), 44 queries , Yac On.

Powered by Discuz! X3.5

快速回复 返回顶部 返回列表