程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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