您当前的位置: 首页 >  .net

[Asp.Net]aspx页面转html

发布时间:2009-02-13 15:26:00 ,浏览量:0

在上次的基础上,我想到一个问题,就把已经完成的页面读取出来转换成html。

我在网上找了一下资料:

方案1:  

//////   传入URL返回网页的html代码   
  //////URL///public   static    string   getUrltoHtml(string   Url)   
  {   
  errorMsg   =   "";   
  try   
  {   
  System.Net.WebRequest   wReq   =   System.Net.WebRequest.Create(Url);   
  //   Get   the   response   instance.   
  System.Net.WebResponse   wResp   =wReq.GetResponse();   
  //   Read   an   HTTP-specific   property   
  //if   (wResp.GetType()   ==HttpWebResponse)   
  //{   
  //DateTime   updated    =((System.Net.HttpWebResponse)wResp).LastModified;   
  //}   
  //   Get   the   response   stream.   
  System.IO.Stream   respStream    =   wResp.GetResponseStream();   
  //   Dim   reader   As   StreamReader   =   New   StreamReader(respStream)   
  System.IO.StreamReader   reader   =   new   System.IO.StreamReader(respStream,   System.Text.Encoding.GetEncoding("gb2312"));  
  return    reader.ReadToEnd();   
   
  }   
  catch(System.Exception   ex)   
  {   
  errorMsg   =   ex.Message   ;   
  }   
  return   "";   
  }
     你可以用这个函数获取网页的客户端的 html 代码,然后保存到 .html 文件里就可以了。        方案 2 :     生成单个的静态页面不是难点,难的是各个静态页面间的关联和链接如何保持完整;     特别是在页面频繁更新、修改、或删除的情况下;        像阿里巴巴的页面也全部是 html 的,估计用的是地址映射的功能     关于地址映射可参考: http://www.easewe.com/Article/ShowArticle.aspx?article=131        可以看看这个页面,分析一下他的 “ 竞价倒计时 ” 功能     http://info.china.alibaba.com/news/subject/v1-s5011580.html?head=top4&Bidding=home5        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;
 -----------------------------------------------------------------------------

针对以上方案都做了一些测试

方案一:乱码 GB2312改为UTF-8

方案二:比较适合新闻主题连接

各位顶一下哈。。。。。

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    108697博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.3812s