天天看点

Asp.net生成静态页面最简单方法(源码)

public string IssuanceHTML(string NC_Id_S)

{

string returnValue = "";

string htmlfilename=DateTime.Now.ToString("yyyyMMddHHmmss")+".html";

        SqlConnection conn = null;

        SqlDataReader sdr = null;

        try

        {

            string[] NC_Id_SS = NC_Id_S.Split(','); //批量操作时 Split分离数据

            for (int i = 0; i < NC_Id_SS.Length; i++)  //循环生成

            {conn = Connection.CreateDbConn();

             conn.Open();

             SqlCommand cmd = new SqlCommand();

cmd.Connection = conn;

    cmd.CommandText = "SELECT NC_Name_S, NC_Content_S FROM NewsContent WHERE NC_Id_S = '" + NC_Id_S + "'";

    sdr = cmd.ExecuteReader();

sdr.Read();

string path = HttpContext.Current.Server.MapPath("/HTML/"); //生成文件路径

    Encoding code = Encoding.GetEncoding("gb2312"); //编码规则

    string temp = HttpContext.Current.Server.MapPath("/Templet/C8Article.html"); 模版文件

    StreamReader sr = null;

    StreamWriter sw = null;

    string str = "";

    sr = new StreamReader(temp, code);

    str = sr.ReadToEnd();

    sr.Close();

    str = str.Replace("spagetitle", sdr.GetString(0).ToString());//spagetitle为模版文件中内容

    str = str.Replace("scontent", sdr.GetString(1).ToString());

    sw = new StreamWriter(path + htmlfilename, false, code);

    sw.Write(str);

    sw.Flush();

    sw.Close();

    returnValue = "yes";

     }

        catch(Exception e)

        {  returnValue = e.Message.ToString();

        }

        finally

        {   sdr.Close();

            conn.Close();

        return returnValue;

}

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

另外一个代码

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   strDate   =   DateTime.Now.ToString( "yyMMdd ")   +   "\ "   +   DateTime.Now.ToString( "yyyymmddhhmmss ");

                        string   strFileName   =   strDate   +   ".shtml ";

                        string   strTitle=Request.Form[ "Title "].ToString().Trim();

                        string   strContent=Request.Form[ "Content "].ToString().Trim();

                        string[]   content   =   strContent.Split(new   Char[]   ...{ ' ¦ '});

                        int   upbound   =   content.Length;

                        SqlServerDataBase   db   =   new   SqlServerDataBase();

                        bool   success   =   db.Insert( "insert   into   inNews(Title,Content,FilePath)values( ' "   +   strTitle   +   " ', ' "   +   strContent   +   " ', ' "   +   strFileName   +   " ') ",   null);

                        string   dir   =   Server.MapPath( "http://www.cnblogs.com/ "+ "NewsFiles/ "+DateTime.Now.ToString( "yyMMdd "));

                        if   (!Directory.Exists(dir))

                        {

                                Directory.CreateDirectory(dir);

                        }

                        try

                        for   (int   i   =   0;   i   <   content.Length;   i++)

                        //string[]   newContent   =   new   string[4];

                        StringBuilder   strhtml   =   new   StringBuilder();

                                using   (StreamReader   sr   =   new   StreamReader(Server.MapPath( "http://www.cnblogs.com/ "   +   "NewsFiles/ ")   +   "\template.html ",Encoding.GetEncoding( "gb2312 ")))

                                {

                                        String   oneline;

                                        while   ((oneline   =   sr.ReadLine())   !=   null)

                                        {

                                                strhtml.Append(oneline);

                                        }

                                        sr.Close();

                                }

                        DataSet   ds   =   db.Select( "select   top   1   NewsId   from   inNews   order   by   NewsId   desc ",   null);

                        string   strTable   =   " <table> <tr> <td> $upUrl </td> <td> $Number </td> <td> $downUrl </td> </tr> </table> ";

                                string   FilePath= " ";

                                strhtml   =   strhtml.Replace( "$Title ",   strTitle);

                                strhtml   =   strhtml.Replace( "$NewsId ",   ds.Tables[0].Rows[0][ "NewsId "].ToString());

                                strhtml   =   strhtml.Replace( "$Time ",   DateTime.Now.ToString( "yyyy/MM/dd "));

                                strhtml   =   strhtml.Replace( "$Content ",   content[i]);

                                string   strNumber   =   " ";

                                for   (int   m   =   1;   m   <=upbound;   m++)

                                        if   (m   ==   1)

                                                strNumber   =   strNumber   +   "   [ "+ " <a   href= "   +   "../ "   +   strDate   +   ".shtml "   +   "> "   +   m   +   " </a> "+ "]   ";

                                        else

                                                int   n   =   m   -   1;

                                                strNumber   =   strNumber   +   "   [ "   + " <a   href= "   +   "../ "   +   strDate   +   "_ "   +   n   +   ".shtml "   +   "> "   +     m   +   " </a> "+ "]   ";

                                        if   (upbound   ==   0)

                                                FilePath   =   Server.MapPath( "http://www.cnblogs.com/ ")   +   "NewsFiles "   +   "// "   +   strDate   +   ".shtml ";

                                                strhtml   =   strhtml.Replace( "$Pager ",   " ");

                                                if   (i   ==   0)

                                                        FilePath   =   Server.MapPath( "http://www.cnblogs.com/ ")   +   "NewsFiles "   +   "// "   +   strDate   +   ".shtml ";

                                                else

                                                        FilePath   =   Server.MapPath( "http://www.cnblogs.com/ ")   +   "NewsFiles "   +   "// "   +   strDate   +   "_ "   +   i   +   ".shtml ";

                                                        strTable   =   strTable.Replace( "$upUrl ",   " ");  

                                                if   (i   <=   1)//上一页分页

                                                        strTable   =   strTable.Replace( "$upUrl ",   " <a   href= "   +   "../ "   +   strDate   +   ".shtml "   +   "> 上一页 </a> ");

                                                {

                                                        int   p   =   i   -   1;

                                                        strTable   =   strTable.Replace( "$upUrl ",   " <a   href= "   +   "../ "   +   strDate   +   "_ "   +   p   +   ".shtml "   +   "> 上一页 </a> ");

                                                }

                                                if(upbound==1)

                                                strTable   =   strTable.Replace( "$Number ",   " ");

                                                strTable   =   strTable.Replace( "$Number ",   strNumber);

                                                if(i==upbound-1)

                                                        strTable   =   strTable.Replace( "$downUrl ",   " ");

                                                if   (i   !=   upbound   -   1)

                                                        int   q   =   i   +   1;

                                                        strTable   =   strTable.Replace( "$downUrl ",   " <a   href= "   +   "../ "   +   strDate   +   "_ "   +   q   +   ".shtml "   +   "> 下一页 </a> ");

                                                        int   j   =   upbound   -   1;

                                                        strTable   =   strTable.Replace( "$downUrl ",   " <a   href= "   +   "../ "   +   strDate   +   "_ "   +   j   +   ".shtml "   +   "> 下一页 </a> ");

                                                strhtml   =   strhtml.Replace( "$Pager ",   strTable);

                                FileInfo   finfo   =   new   FileInfo(FilePath);

                                using   (FileStream   fs   =   finfo.OpenWrite())

                                        StreamWriter   sw   =   new   StreamWriter(fs,   System.Text.Encoding.Default);

                                        sw.WriteLine(strhtml);

                                        sw.Flush();

                                        sw.Close();

                catch   (Exception   err)

                        Response.Write(err.ToString());

版权

作者:灵动生活 郝宪玮

如果你认为此文章有用,请点击底端的【推荐】让其他人也了解此文章,

Asp.net生成静态页面最简单方法(源码)

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

继续阅读