asp.net(c#)生成静态html页面

生成静态页面的好处就很多了,比如提高访问速度,利于搜索引擎抓取等等。下面这个是利用替换模板中特殊字符的原理写的。供大家交流学习…… 
using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
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  Mysqlserver; // 数据库操作类
using  System.IO;
using  System.Text;
namespace  NewsAdd
{
    
public partial class Admin_AdminPanel_NewsAdd : System.Web.UI.Page
    
{
        
protected void Page_Load(object sender, EventArgs e)
        
{

        }

        
protected void Button1_Click(object sender, EventArgs e)
        
{
            
string strTitle=Request.Form["Title"].ToString();
            
string strContent=Request.Form["Content"].ToString();
            SqlServerDataBase db 
= new SqlServerDataBase();
            
bool success = db.Insert("insert into inNews(Title,Content)values('" + strTitle + "','" + strContent + "')"null);
            
//if (success)
               
// Message.Text = "添加成功!";
            ///创建当前日期的文件夹开始
            string dir = Server.MapPath("../../"+"NewsFiles/"+DateTime.Now.ToString("yyMMdd"));
            
if (!Directory.Exists(dir))
            
{
                Directory.CreateDirectory(dir);
            }

            
///创建当前日期的文件夹结束
            
            
string[] newContent = new string[5];//定义和html标记数目一致的数组
            StringBuilder strhtml = new StringBuilder();
            
try
            
{
                
//创建StreamReader对象
                using (StreamReader sr = new StreamReader(Server.MapPath("../../" + "NewsFiles/"+ "/template.html"))
                
{
                    String oneline;
                    
//读取指定的HTML文件模板
                    while ((oneline = sr.ReadLine()) != null)
                    
{
                        strhtml.Append(oneline);
                    }

                    sr.Close();
                }

            }

            
catch (Exception err)
            
{
                
//输出异常信息
                Response.Write(err.ToString());
            }

            
//为标记数组赋值
            newContent[0= strTitle;//标题
            newContent[1= "BackColor='#cccfff'";//背景色
            newContent[2= "#ff0000";//字体颜色
            newContent[3= "100px";//字体大小
            newContent[4= strContent;//主要内容

            
//根据上面新的内容生成html文件
            try
            
{
                
//指定要生成的HTML文件
                string fname = Server.MapPath("../../" + "NewsFiles/" + DateTime.Now.ToString("yyMMdd")) + "/" + DateTime.Now.ToString("yyyymmddhhmmss"+ ".html";
                
//替换html模版文件里的标记为新的内容
                for (int i = 0; i < 5; i++)
                
{
                    strhtml.Replace(
"$htmlkey[" + i + "]", newContent[i]);
                }

                
//创建文件信息对象
                FileInfo finfo = new FileInfo(fname);
                
//以打开或者写入的形式创建文件流
                using (FileStream fs = finfo.OpenWrite())
                
{
                    
//根据上面创建的文件流创建写数据流
                    StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("GB2312"));
                    
//把新的内容写到创建的HTML页面中
                    sw.WriteLine(strhtml);
                    sw.Flush();
                    sw.Close();
                }

            }

            
catch (Exception err)
            
{
                Response.Write(err.ToString());
            }

        }

}

}

template.html 的主要代码

 

  < html >
       
< head >
              
< title > $htmlkey[0] </ title >
              
< meta  http-equiv ="Content-Type"  content ="text/html; charset=gb2312" >
       
</ head >
       
< body  >
              
< table  $htmlkey[1] height ="100%"  border ="0"  width ="100%"  cellpadding ="10"  cellspacing ="0"   bgcolor ="#eeeeee"  style ="border:1px solid #000000" >
                 
< tr >
                    
< td  width ="100%"  valign ="middle"  align ="left" >
                        
< span  style ="color: $htmlkey[2];font-size: $htmlkey[3]" > $htmlkey[4] </ span >
                    
</ td >
                 
</ tr >
              
</ table >
       
</ body >
</ html >
                                                                    

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

生成静态页面过程中路径问题很重要,一定要设置明白。代码已经加了简单的注释。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值