ASP.Net生成静态页面

// ------------------------------------调用方法-------------------------------------
// 所要替换的内容如title 、content 、author 、time 等可以从数据库或者页面用户输入来获得
string  title  =   " 新闻标题 " ;
string  content  =   " 新闻内容 " ;
string  author  =   " 新闻作者 " ;
string  time  =  DateTime.Now.ToString(); // 发布时间
string [][] replaceSign  =   new   string [][]
{   
            
new string[]{"$title$",title},
            
new string[]{"$content$",content},
            
new string[]{"$author$",author},
            
new string[]{"$time$",time}
}
;
string  templatePage  =   " Model/newsModel.htm " ;
string  saveHtmlPage  =   " News/ "   +  DateTime.Now.ToString( " yyyyMMddHHmmss " +   " .htm " ;
string  encodingName  =   " GB2312 " ;
DHtml.WriteHtml(replaceSign, templatePage, saveHtmlPage, encodingName);

 

// -----------------------根据模版生成静态页面---------------------------------------------
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;

/// <summary>
/// DHtml 的摘要说明
/// </summary>

public   class  DHtml
{
    
public DHtml()
    
{        
    }
    
    
/// <summary>
    
/// 动态生成HTML页
    
/// </summary>
    
/// <param name="replaceSign">用于替换HTML模板的变量数组</param>
    
/// <param name="templatePage">所要调用的HTML模板页面名称</param>
    
/// <param name="saveHtmlPage">保存所生成的静态HTML页面名称</param>
    
/// <param name="encodingName">读取HTML模板页和生成HTML页所使用的字符编码方式(如:"GB2312")</param>
    
/// <returns>bool类型(true=生成成功,false=生成失败)</returns>

    public static bool WriteHtml(string[][] replaceSign, string templatePage, string saveHtmlPage, string encodingName)
    
{
        System.Web.UI.Page page 
= new Page();
        
//---------------------读html模板页面到stringbuilder对象里---- 
        System.Text.StringBuilder htmltext = new System.Text.StringBuilder();
        
try
        
{
            System.IO.StreamReader sr 
= new System.IO.StreamReader(page.Server.MapPath(templatePage.Trim()), System.Text.Encoding.GetEncoding(encodingName));
            
string line;
            
while ((line = sr.ReadLine()) != null)
            
{
                htmltext.Append(line);
            }

            sr.Close(); 
        }

        
catch
        
{
            System.Web.HttpContext.Current.Response.Write(
"<script>alert('读取HTML模板 " + templatePage.Trim() + " 出错!');</script>");
        }

        
//----------替换htm模板里的标记为传入的数组
        for (int i = 0; i < replaceSign.Length; i++)
        
{
            htmltext.Replace(replaceSign[i][
0], replaceSign[i][1]);
        }

        
//----------生成htm文件------------------―― 
        try
        
{
            
string tmphtm = page.Server.MapPath(saveHtmlPage);
            System.IO.StreamWriter sw 
= new System.IO.StreamWriter(tmphtm.Trim(), false, System.Text.Encoding.GetEncoding(encodingName));
            sw.WriteLine(htmltext);
            sw.Flush();
            sw.Close();
            
return true;
        }

        
catch
        
{
            System.Web.HttpContext.Current.Response.Write(
"<script>alert('" + saveHtmlPage.Trim() + " HTML文件生成失败!');</script>");
            
return false;
        }

    }

}

 

// ----------------------------------附模版文件NewsModel.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$ </ title >
</ head >
< body >
    
< table width = " 750 "  align = " center " >
        
< tr >                 
                
< td valign = " top " >
                    
< div >
                        
< div >
                            
< h2 align = " center "  style = " padding-bottom:5px; padding-top:5px " >
                                
< span > $title$ </ span >
                            
</ h2 >
                        
</ div >
                        
< div >
                            
< h3 align = " center "  style = " padding-bottom:3px; padding-top:3px " >
                                发布时间:
< span > $time$ </ span >& nbsp
                                发布人:
< span > $author$ </ span >
                            
</ h3 >                             
                        
</ div >
                        
< div >
                            
< span > $content$ </ span >
                        
</ div >                         
                    
</ div >
                
</ td >
            
</ tr >
    
</ table >
</ body >
</ html >

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值