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;

///   <summary>
///  WriteFile 的摘要说明
///   </summary>
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 []{ " <!-- start --> " };
        
string [] strEndHtml = new   string []{ " <!--end--> " };
        
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 >
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值