有人找这东西,我发现网上一大片,找一个转过来了,呵呵 在开发中我们有时候需要将ASP.NET中的.aspx页面转化成静态的页面进行相关的业务处理,网上搜索了不少方法,有一些方法的确是蛮不错的,也帮助了我,在此谢谢那些网友啦。我现在将其中的一个方法整理出来,与大家一起分享。 首先,在项目根目录下建立一个静态的模板页,就叫它Template.htm。将这个页面排版成你以后要生成的静态的Html页面的格式。在这个例子中,我要将服务器端已经传送到客户端的.aspx页面(加班单)转化成Html静态页面,前去盖章审核。那么这个模板页就应该是加班单的样式。
其Html网页代码是(一部分): [HTML] 纯文本查看 复制代码 <table border="0" cellpadding="3" cellspacing="1" align="center"style="background-color:Black; height: 300px; width: 724px;">
<tr style="color:Black; background-color:White">
<td style="width:150px; text-align:center"><font size="2">部门:</font></td>
<td style="width:200px; text-align:left"><font size="2">$Department$</font></td>
<td style="width:150px;text-align:center""><font size="2">申请日期:</font></td>
<td style="width:200px; text-align:left"><font size="2">$ApplyTime$
</font></td>
</tr>
将你要替换的部分用一个特殊的符号代替,例如例子中的$Department$。然后在网页上进行转化时可以根据这些符号进行替换,将相应的值替换这些特殊符号。 后台C#代码是: [C#] 纯文本查看 复制代码 //将动态的ASP.NET页面转化成静态的页面
private void CreateHtml()
{
try
{
//设置文件名
string filename = lblApplyTime.Text.Replace("/", "-") + "-" + lblName.Text + ".html";
//获取当前文件路径(服务器端)
string path = HttpContext.Current.Server.MapPath(@"~/WebManage/Template.htm");
//通过路径获取模板文件内容
using (StreamReader r = new StreamReader(path))
{
String line = null;
//大量字符串拼接或频繁对某一字符串进行操作时最好使用 StringBuilder
StringBuilder str = new StringBuilder();
//开始读取模板文件内容
while ((line = r.ReadLine()) != null)
{
str.AppendLine(line);//这里就是一行一行的拼接字符串
}
r.Close();
str.Replace("$Department$", lblDepartment.Text);//开始替换文本
str.Replace("$ApplyTime$", lblApplyTime.Text);
str.Replace("$Name$", lblName.Text);
str.Replace("$WorkDate$", lblWorkTime.Text);
str.Replace("$WorkTime$", lblWorkTime.Text);
str.Replace("$Reason$", lblReason.Text);
//设置文件路径
string htmlpath = HttpContext.Current.Server.MapPath("~/HtmlFile/");
string paths = htmlpath + filename;
//实例化,并制定文件名称规则和生成文件路径
StreamWriter w = new StreamWriter(paths, false, Encoding.GetEncoding("utf-8"));
w.Write(str);//这里才真正开始创建文件
w.Close();//关闭
w.Dispose();
}
}
catch (Exception ex)
{
Response.Write("<script>alert('" + ex.Message + "');</script>");
}
}
|