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

王朝学院·作者佚名  2016-08-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

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

增加一个模板文件

<htmlxmlns="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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航