熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

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

2013-11-13 10:40:51  來源: .NET編程 
生成靜態頁有很多好處可以緩解服務器壓力方便搜索網站搜索等等下面介紹一下生成靜態頁的實例代碼有需要的朋友可以參考一下  

  最近突然想把項目中新聞管理模塊做成靜態頁在網上找到很多很好的文章在這裡記錄一下現在只是實現靜態頁面的生成並沒有實現分頁功能其主要原理就是讀取數據庫的數據然後替換掉靜態模板頁的內容
首先制作一個模板頁暫時命名為templatehtm示例代碼如下
<!DOCTYPE html PUBLIC "//WC//DTD XHTML Transitional//EN" "
<html xmlns="
<head>
    <title></title>
</head>
<body>
    <div>
        $content$
    </div>
</body>
</html>
然後制作制作一個動態頁面在這裡我們通過一個按鈕點擊事件來生成靜態頁面
前台頁面主要代碼(Defaultaspx)

復制代碼 代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Defaultaspxcs" Inherits="_Default" %> 
<!DOCTYPE html PUBLIC "//WC//DTD XHTML Transitional//EN" "
<html xmlns="
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form" runat="server"> 
    <div> 
        <asp:TextBox ID="txtContent" runat="server" Height="px" TextMode="MultiLine" Width="px"></asp:TextBox><br /> 
        <br /> 
        <asp:Button ID="btnMake" runat="server" OnClick="btnMake_Click" Text="生成靜態頁" /> 
    </div> 
    </form> 
</body> 
</html> 

  
後台頁面主要代碼(Defaultaspxcs)

復制代碼 代碼如下:
protected void btnMake_Click(object sender EventArgs e) 
    { 
        //替換掉模板中的特征字符    
        string mbPath = ServerMapPath("templatehtm"); 
        Encoding code = EncodingGetEncoding("UTF"); 
        StreamReader sr = null; 
        StreamWriter sw = null; 
        string str = null; 
        //讀取    
        try 
        { 
            sr = new StreamReader(mbPath code); 
            str = srReadToEnd(); 
        } 
        catch (Exception ex) 
        { 
            throw ex; 
        } 
        finally 
        { 
            srClose(); 
        } 
        //根據時間自動重命名擴展名也可以自行修改    
        string fileName = DateTimeNowToString("yyyyMMddHHmm") + "htm"; 
        str = strReplace("$content$" txtContentText);//替換content   
        //生成靜態文件    
        try 
        { 
            sw = new StreamWriter(ServerMapPath("~/") + fileName false code); 
            swWrite(str); 
            swFlush(); 
        } 
        catch (Exception ex) 
        { 
            throw ex; 
        } 
        finally 
        { 
            swClose(); 
            ResponseWrite("<a href=" + fileName + " mce_href=" + fileName + " target=_blank>" + fileName + "</a>已經生成!"); 
        } 
    } 

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


From:http://tw.wingwit.com/Article/program/net/201311/14283.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.