Asp.net生成静态网页的实现代码

现在做程序都要将动态的页面转换成静态页面,今天教大家在ASP.NET 中实现静态页面的生成方法。

using System; 
  using System.Data; 
  using System.Configuration; 
  using System.Web; 
  using System.Web.Security; 
  using System.Web.UI; 
  using System.Web.UI.WebControls; 
  using System.Web.UI.WebControls.WebParts; 
  using System.Web.UI.HtmlControls; 
  using System.IO; 
  using System.Text; 
  ///  
  /// WriteFile 的摘要说明 
  ///  
  public class WriteFile 
  { 
  public WriteFile() 
  { 
  } 
  public static bool createHtml(string[] strnewsHtml,string[] stroldHtml,string strModeFilePath,string strPath) 
  { 
  bool flag = false; 
  StreamReader sr = null; 
  StreamWriter sw = null; 
  string filepath = HttpContext.Current.Server.MapPath(strModeFilePath); 
  Encoding code = Encoding.GetEncoding("gb2312"); 
  string s = string.Empty; 
  try 
  { 
  sr = new StreamReader(filepath,code); 
  s = sr.ReadToEnd(); 
  } 
  catch (Exception ex) 
  { 
  throw ex; 
  } 
  finally 
  { 
  sr.Close(); 
  } 
  try 
  { 
  for (int i = 0; i < strnewsHtml.Length; i++) 
  { 
  s = s.Replace(stroldHtml[i], strnewsHtml[i]); 
  } 
  sw = new StreamWriter(HttpContext.Current.Server.MapPath(strPath), false, code); 
  sw.Write(s); 
  flag = true; 
  } 
  catch (Exception ex) 
  { 
  flag = false; 
  throw ex; 
  } 
  finally 
  { 
  sw.Flush(); 
  sw.Close(); 
  } 
  return flag; 
  } 
  public static bool UpdateHtmlPage(string[] strNewsHtml, string[] strStartHtml, string[] strEndHtml, string strHtml) 
  { 
  bool Flage = false; 
  StreamReader ReaderFile = null; 
  StreamWriter WrirteFile = null; 
  string FilePath = HttpContext.Current.Server.MapPath(strHtml); 
  Encoding Code = Encoding.GetEncoding("gb2312"); 
  string strFile = string.Empty; 
  try 
  { 
  ReaderFile = new StreamReader(FilePath, Code); 
  strFile = ReaderFile.ReadToEnd(); 
  } 
  catch (Exception ex) 
  { 
  throw ex; 
  } 
  finally 
  { 
  ReaderFile.Close(); 
  } 
  try 
  { 
  int intLengTh = strNewsHtml.Length; 
  for (int i = 0; i < intLengTh; i++) 
  { 
  int intStart = strFile.IndexOf(strStartHtml[i]) + strStartHtml[i].Length; 
  int intEnd = strFile.IndexOf(strEndHtml[i]); 
  string strOldHtml = strFile.Substring(intStart, intEnd - intStart); 
  strFile = strFile.Replace(strOldHtml, strNewsHtml[i]); 
  } 
  WrirteFile = new StreamWriter(FilePath, false, Code); 
  WrirteFile.Write(strFile); 
  Flage = true; 
  } 
  catch (Exception ex) 
  { 
  throw ex; 
  } 
  finally 
  { 
  WrirteFile.Flush(); 
  WrirteFile.Close(); 
  } 
  return Flage; 
  } 
  } 
  调用公共类: 
  ---------------------------------------------------------------------------- 
  protected void Button2_Click(object sender, EventArgs e) 
  { 
  string NewsTitle = this.TextBox1.Text; 
  string NewsKindName = this.DropDownList1.SelectedItem.Text; 
  string NewsBody = this.WebEditor1.Text; 
  DateTime PubTime = DateTime.Now; 
  string UserName = Session["UserName"].ToString(); 
  Response.Write(NewsKindName); 
  string[] strNewsHtml = new string[] { NewsTitle, NewsKindName, NewsBody, PubTime.ToString(), UserName }; 
  string[] strOldHtml = new string[] { "@Title", "@NewsKInd", "@NewsBody", "@PubTime", "@UserName" }; 
  string strFileName = DateTime.Now.ToString("ddhhmmss") + ".html"; 
  string strFilePath = string.Format("NewsHtml/{0}", strFileName); 
  try 
  { 
  if (WriteFile.createHtml(strNewsHtml, strOldHtml, "mode.htm", strFilePath)) 
  { 
  this.Label1.Text = "生成成功!"; 
  } 
  else 
  { 
  this.Label1.Text = "生成失败!"; 
  } 
  } 
  catch 
  { 
  this.Label1.Text = "生成失败!"; 
  } 
  } 
  protected void Button3_Click(object sender, EventArgs e) 
  { 
  string[] strNewsHtml=new string[]{"到此一游!"}; 
  string[] strStartHtml=new string[]{""}; 
  string[] strEndHtml=new string[]{""}; 
  if (WriteFile.UpdateHtmlPage(strNewsHtml, strStartHtml, strEndHtml, "NewsHtml/02011139.html")) 
  { 
  this.Label1.Text="生成首页成功!"; 
  } 
  else 
  { 
  this.Label1.Text="生成首页失败!"; 
  } 
  }

  新建文件夹NewsHtml,生成html文件放在里面

  -----------------------------------------------------------

  增加一个模板文件

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head> 
    <title>无标题页</title> 
</head> 
<body> 
    <table border="1" cellpadding="0" cellspacing="0" style="width: 522px; height: 338px"> 
        <tr> 
            <td align="center" colspan="2"> 
                @Title</td> 
</tr> 
        <tr> 
            <td align="center" colspan="2"> 
                发布人:@UserName &nbsp; &nbsp; 发布时间:@PubTime &nbsp; &nbsp;&nbsp; 新闻类别:@NewsKInd</td> 
        </tr> 
        <tr> 
            <td colspan="2"> 
                @NewsBody</td></tr><tr> 
  <td style="WIDTH: 100px">  
</td><td style="WIDTH: 100px" > 
</td></tr></table></body></html>

转载自:http://www.aspnetjia.com

时间: 2024-11-10 00:15:50

Asp.net生成静态网页的实现代码的相关文章

Asp.net 生成静态页面

第一次发表,有什么错误,请大家谅解噢! 如果不明白的话,建议自己拷一次. 就会的了.. 开发步骤: 1.路径映射类(UrlMapping),主要对路径进行拆分.拼接.(关键的一步) 2.过滤流类(FilterStream),主要负责生成静态页面. 3.静态页面类(HtmlPage),主要是调用UrlMapping和FilterStream类, 哪个页面想静态化,就继承这个类. 4.HtmlHandler类,路径后缀为Html的,都由它来处理,与HtmlPage类相似. 5.HtmlPanel类(

ASP.NET生成静态页面方法大全

方案1: /// <summary> /// 传入URL返回网页的html代码 /// </summary> /// <param name="Url">URL</param> /// <returns></returns> public static string getUrltoHtml(string Url) { errorMsg = ""; try { System.Net.WebReq

.net快速生成静态网页的方法一

一般用.net生成静态化网页方法有两种,一般是通过浏览器去触发动态的.aspx文件来达到解析网页,然后再生成网页,这种方法我们不用(因为这种方法需要浪费比较大的服务器性能,而且速度比较慢,一秒大概只能生成10个网页左右),所以我们今天要讲的是第二种方法,写一个网页模板,然后再用.net去解析标签,然后以完成这一个生成网页静态化功能(独占网络(http://www.sz886.com)-深圳网站建设-http://www.sz886.com技术人员测试过1秒可以生成100多个网页,性能非常好而且稳

Freemarker入门小案例(生成静态网页的其中一种方式)

其实生成静态网页的方式有好多种,我昨天看了一下,Freemarker是其中一种,但是Freemarker现在我们都用得比较少了,现在用得ActiveMQ用来发送信息到静态页面,不过想了一下这个小东西,还是想给大家分享一下,我的小小心得. 若项目为Maven项目,那么可以如下 在Pom.xml文件里面添加 <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</arti

原理与示例:php+mysql+jquery 生成静态网页(含后台编辑功能)

从Web的工作原理来看,用户访问HTML所带来的服务器负载要远小于访问动态页面,因为在前者中,服务器只用把对应的html代码发送给客户端即可,而在后者中,服务器则需要根据访问条件进行一系列的计算,然后生成html代码,最后把运算结果代码发送给客户端. 所以,对于访问量较大的宣传式网站(比如新闻类),要尽可能地使用静态页面. 另一方面,我们不可能让网站编辑人员来一个一个地手工制作这些HTML,那样就是回到多年前的纯静态时代了.我们可以用动态语言来方便.快捷地生成这些静态网页.而且,目前这一技术已经

ASP.NET总结——静态网页与动态网页

刚刚看完<北大青鸟ASP.NET>视频的前六集.这六集视频给我太多太多听觉和视觉上的"刺激"(太卡了).尽管如此,在视频当中,我依然接触了许多新的概念,知识.(其实也不算新,只是这次好像正式了些.)之后,它们就激起了我很大的求知欲望.可是搜索了一番,还是觉得自己理解地很浅显,但是我觉得非常有必要总结一下,这样才能为以后深入地理解打下基础.         静态网页与动态网页 当初,在看<牛腩新闻发布系统>的时候,小牛老师有的时候创建的网页的后缀是.aspx的,有

PHP生成静态网页的方法

看到很多朋友在各个地方发帖问PHP生成静态文章系统的方法,以前曾做过这样一个系统,遂谈些看法,以供各位参考.兄弟连PHP培训先带大家回顾一些基本的概念. 一,PHP脚本与动态页面. PHP脚本是一种服务器端脚本程序,可通过嵌入等方法与HTML文件混合,也可以类,函数封装等形式,以模板的方式对用户请求进行处理.无论以何种方式,它的基本原理是这样的.由客户端提出请求,请求某一页面 -----> WEB服务器引入指定相应脚本进行处理 -----> 脚本被载入服务器 -----> 由服务器指定的

【Asp.net入门15】第一个ASP.NET 应用程序-网页调用codebehind代码

虽然可以在Web窗体文件中添加C#代码块,但这样做通常意义不大,因为代码会很快变得难以阅读和维护.一个更合理.更常用的办法是在代码隐藏文件中定义一个方法,然后使用代码片段调用该方法,并将结果插入到发送给浏览器的HTML中.代码清单1-16在Summary.aspx.cs代码隐藏文件中定义了一个新方法GetNoShowHtml,此方法会生成和上一节中相同的表格行. 代码清单1-16 Summary.aspx.cs代码隐藏文件中的GetNoShowHtml方法 然后,可通过Summary.aspx文

生成静态页技术

概要: 1.什么是生成静态页技术? 答:互联网上流行的做法是将数据源代码写入数据库再从数据库读取生成静态面,这样无形间就加大了数据库.将现有的ASP页直接生成静态页,将会节省很多. 2.为什么要生成静态页以及好处? 答:一.加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明 显提高: 二.有利于搜索引擎优化SEO,Baidu.Google都会优先收录静态页面,不仅被收录的快还收录的全: 三.减轻服务器负担,浏览网页无需调用系统数据库: 四.网站更安全,HTML页面不会受Asp相关