程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET動態生成靜態頁面的實例代碼

ASP.NET動態生成靜態頁面的實例代碼

編輯:關於ASP.NET
    生成靜態頁有很多好處,可以緩解服務器壓力、方便搜索網站搜索等等,下面介紹一下生成靜態頁的實例代碼,有需要的朋友可以參考一下  

    最近突然想把項目中新聞管理模塊做成靜態頁,在網上找到很多很好的文章,在這裡記錄一下,現在只是實現靜態頁面的生成並沒有實現分頁功能。其主要原理就是讀取數據庫的數據然後替換掉靜態模板頁的內容。
    首先制作一個模板頁,暫時命名為template.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>
    </head>
    <body>
        <div>
            $content$
        </div>
    </body>
    </html>
    然後制作制作一個動態頁面,在這裡我們通過一個按鈕點擊事件來生成靜態頁面。
    前台頁面主要代碼(Default.aspx):

    復制代碼 代碼如下:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
    <!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 runat="server"> 
        <title></title> 
    </head> 
    <body> 
        <form id="form1" runat="server"> 
        <div> 
            <asp:TextBox ID="txtContent" runat="server" Height="179px" TextMode="MultiLine" Width="350px"></asp:TextBox><br /> 
            <br /> 
            <asp:Button ID="btnMake" runat="server" OnClick="btnMake_Click" Text="生成靜態頁" /> 
        </div> 
        </form> 
    </body> 
    </html> 


    後台頁面主要代碼(Default.aspx.cs):

    復制代碼 代碼如下:
    protected void btnMake_Click(object sender, EventArgs e) 
        { 
            //替換掉模板中的特征字符    
            string mbPath = Server.MapPath("template.htm"); 
            Encoding code = Encoding.GetEncoding("UTF-8"); 
            StreamReader sr = null; 
            StreamWriter sw = null; 
            string str = null; 
            //讀取    
            try 
            { 
                sr = new StreamReader(mbPath, code); 
                str = sr.ReadToEnd(); 
            } 
            catch (Exception ex) 
            { 
                throw ex; 
            } 
            finally 
            { 
                sr.Close(); 
            } 
            //根據時間自動重命名,擴展名也可以自行修改    
            string fileName = DateTime.Now.ToString("yyyyMMddHHmm") + ".htm"; 
            str = str.Replace("$content$", txtContent.Text);//替換content   
            //生成靜態文件    
            try 
            { 
                sw = new StreamWriter(Server.MapPath("~/") + fileName, false, code); 
                sw.Write(str); 
                sw.Flush(); 
            } 
            catch (Exception ex) 
            { 
                throw ex; 
            } 
            finally 
            { 
                sw.Close(); 
                Response.Write("<a href=" + fileName + " mce_href=" + fileName + " target=_blank>" + fileName + "</a>已經生成!"); 
            } 
        } 


    當新聞量很大時這樣做勢必會增加服務器的存儲壓力,暫時記錄下來等畢業設計時再考慮增加動態生成靜態頁面,靜態頁面分頁的功能。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved