如何将.aspx转换为.htm

来源:岁月联盟 编辑:exp 时间:2011-11-04

 

方法一:根据模板生成,保持在html文件夹中 

思路分析: 

1.写一个自定义的HTM模板  其中需要替换的地方用$value$这样 

包含起来   

2.生成页面的ASPX中,用StreamReader读取HTM模板,用REPLACE 

替换$value$   

3.把完成的字符串用StreamWriter输出 

参考代码如下: 

1)定义模板emplate.htm 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 

<head> 

    <title> $title$ 生成静态页的Demo|-51aspx.com</title> 

    <style type="text/css"> 

<!-- 

.STYLE1 { 

font-size: 16px; 

font-weight: bold; 

--> 

    </style> 

</head> 

<body> 

<br /> 

<br /> 

<table width="100%" border="0" bgcolor="#339900"> 

  <tr> 

    <td height="34" align="center" bgcolor="#FFFFFF"><span class="STYLE1">$title$ </span></td> 

  </tr> 

  <tr> 

    <td height="42" bgcolor="#FFFFFF"><br /> 

      <br /> 

    内容:$content$ </td> 

  </tr> 

</table> 

<a href="#" target="_blank">版权所有</a> 

</body> 

</html> 

2)在Default.aspx页面的按扭的事件处理中写如下代码: 

//源码是替换掉模板中的特征字符 

  string mbPath = Server.MapPath("template.htm"); 

  Encoding code = Encoding.GetEncoding("gb2312"); 

  StreamReader sr = null; 

  StreamWriter sw = null; 

  string str = null; 

  //读取 

  try 

  { 

  sr = new StreamReader(mbPath, code); 

  str = sr.ReadToEnd(); 

  } 

  catch (Exception ex) 

  { 

  throw ex; 

  } 

  finally 

  { 

  sr.Close(); 

  } 

  //根据时间自动重命名,扩展名也可以自行修改 

  string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".htm"; 

  str = str.Replace("$title{1}quot;, txtTitle.Text);//替换Title 

  str = str.Replace("$content{1}quot;, txtContent.Text);//替换content 

  //生成静态文件 

  try 

  { 

  sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code); 

  sw.Write(str); 

  sw.Flush(); 

  } 

  catch (Exception ex) 

  { 

  throw ex;  

  } 

  finally 

  { 

  sw.Close(); 

  Response.Write("恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已经生成,保存在htm文件夹下!"); 

  } 

 

 

方法二:根据Url地址生成静态页保持 

思路分析: 

直接将做好的动态页面翻译成静态页面,所以生成的内容不够灵活 

参考代码: 

//根据Url地址生成静态页保持 

protected void Button2_Click(object sender, EventArgs e) 

  Encoding code = Encoding.GetEncoding("utf-8"); 

            StreamReader sr = null; 

            StreamWriter sw = null; 

            string str = null; 

            //读取远程路径 

            WebRequest temp = WebRequest.Create(txtUrl.Text.Trim()); 

            WebResponse myTemp = temp.GetResponse(); 

            sr = new StreamReader(myTemp.GetResponseStream(), code); 

            //读取 

            try 

            { 

                sr = new StreamReader(myTemp.GetResponseStream(), code); 

                str = sr.ReadToEnd(); 

            } 

            catch (Exception ex) 

            { 

                throw ex; 

            } 

            finally 

            { 

                sr.Close(); 

            } 

            string fileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".htm"; 

            //写入 

            try 

            { 

                sw = new StreamWriter(Server.MapPath("htm/") + fileName, false, code); 

                sw.Write(str); 

                sw.Flush(); 

            } 

            catch (Exception ex) 

            { 

                throw ex; 

            } 

            finally 

            { 

                sw.Close(); 

                Response.Write("恭喜<a href=htm/" + fileName + " target=_blank>" + fileName + "</a>已经生成,保存在htm文件夹下!"); 

            } 

        }    

摘自:幸福的猪的专栏