welcome to .net developement bar

ASP.net生成静态页面


 
1、建立Conn.cs类文件    
  
using   System;  
  
using   System.Text;  
  
using   System.Web;  
  
using   System.IO;  
  
namespace   myservers  
  {  
  
///   <summary>  
  
///   Conn   的摘要说明。  
  
///   </summary>  
  public   class   Conn  
  {  
  
public   Conn()  
  {  
  
//  
  
//   TODO:   在此处添加构造函数逻辑  
  
//  
  }  
  
public   string   WriteFile(string   strText,string   strContent,string   strAuthor)    
  {  
  
string   path   =   HttpContext.Current.Server.MapPath("/myservers/news");//取得新闻当前文件夹  
  DateTime   year   =   DateTime.Now;  
  
string   years   =   Convert.ToString(year.Year);//当前年  
  string   month   =   Convert.ToString(year.Month);//当前月  
  string   CurrentPath   =   path   +   "/"   +   years;   //设置当前年目录  
                     if(Directory.Exists(CurrentPath)==false)   //若该目录不存在,创建该目录  
                  Directory.CreateDirectory(CurrentPath);  
  
string   CurrentMonthPath   =   CurrentPath   +   "/"   +   month;//设置当前月目录  
  if(Directory.Exists(CurrentMonthPath)==false)   //若该目录不存在,创建该目录  
                  Directory.CreateDirectory(CurrentMonthPath);  
   
  Encoding   code   
=   Encoding.GetEncoding("gb2312");//编码  
  
//   读取模板文件  
  string   temp   =   HttpContext.Current.Server.MapPath("/myservers/text.html");  
  StreamReader   sr
=null;  
  StreamWriter   sw
=null;  
  
string   str="";      
  
try  
  {  
  sr   
=   new   StreamReader(temp,   code);  
  str   
=   sr.ReadToEnd();   //   读取模板文件  
  }  
  
catch(Exception   exp)  
  {  
  HttpContext.Current.Response.Write(exp.Message);  
  HttpContext.Current.Response.End();  
  sr.Close();  
  }  
   
  
//设置文件目录和文件名  
  string   datepath   =   DateTime.Now.ToString("ddHHmmss")+".html";  
  
string   htmlfilename=CurrentMonthPath   +"/"   +   datepath   ;  
  
//   替换内容  
  
//   这时,模板文件已经读入到名称为str的变量中了  
  str   =   str.Replace("ShowArticle",strText);   //模板页中的ShowArticle  
  str   =   str.Replace("biaoti",strText);  
  str   
=   str.Replace("content",strContent);  
  str   
=   str.Replace("author",strAuthor);  
  
//   写文件  
  try  
  {  
  sw   
=   new   StreamWriter(htmlfilename,false,code);  
  sw.Write(str);  
  sw.Flush();  
  }  
  
catch(Exception   ex)  
  {  
  HttpContext.Current.Response.Write(ex.Message);  
  HttpContext.Current.Response.End();  
  }  
  
finally  
  {  
  sw.Close();  
  }  
  
string   path1   =   "news/"   +   years   +   "/"   +   month   +   "/"   +   datepath;  
  
return   path1;  
  }  
   
  }  
  }  
  
2.AddNews.aspx文件  
  
private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  
string   content   =   Server.HtmlEncode(this.Content.Value.Trim());  
  Conn   Hover   
=   new   Conn();  
  
try  
  {  
          
string   htmlpath   =   Hover.WriteFile(this.Title.Text.ToString(),Server.HtmlDecode(this.Content.Value).ToString(),this.Author.Text.ToString());  
  
this.AddData(htmlpath);  
  Response.Write(htmlpath);  
  }  
  
catch  
  {  
  Response.Write(
"生成HTML出错!");  
  }  
  }  
  
protected   void   AddData(string   mypath)  
  {  
  
string   conn   =   "server=localhost;uid=sa;pwd=963100;database=mis";  
  
string   sqlstr   =   "insert   into   news   (name,title,content,author,path)   values   ('"+this.Title.Text.ToString()+"','"+this.Title.Text.ToString()+"','"+this.Content.Value+"','"+this.Author.Text.ToString()+"','"+mypath+"')";  
  SqlConnection   myconn   
=   new   SqlConnection(conn);  
  myconn.Open();  
  SqlCommand   mycommand   
=   new   SqlCommand(sqlstr,myconn);  
  
int   i   =   mycommand.ExecuteNonQuery();  
  }  
  
3、添加模板text.html文件      
  
<head>ShowArticle</head>  
  
<body>  
  title
<br>  
  content
<br>  
  author  
  
</body>
 

posted @ 2007-06-02 12:35  endif  阅读(254)  评论(0编辑  收藏  举报