网页教学网
 当前位置: 网页教学网 >> 网络编程 >> ASP.NET编程技术 >> Asp.net生成静态网页的实现代码
[ HTML ] [ FW ] [ DW ] [ FP ] [ JS ] [ XML ] [ CSS ] [ 图象 ] [ FLASH ] [ .NET ] [ ASP ] [ JSP ] [ PHP ] [ 数据 ] [ 系统 ] [ 安全 ] [ 素材 ] [ 建站 ] [ 主机 ] [ 入门 ] [ 技巧 ]

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

http://www.webjx.com  更新日期:2007-10-10 17:07  出处:网页教学网  作者:站长整理

  现在做程序都要将动态的页面转换成静态页面,今天教大家在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>

关键词:Asp.net,静态网页,代码
推荐给好友】【关闭】【收藏本文
最新五条评论
查看全部评论
评论总数 0
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为