首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

CMS 靜態頁生成實戰:覆寫 Render 方法捕獲輸出並寫入檔案

     編輯:關於ASP.NET

方案比較

  • URL Rewrite + 靜態檔案
  • 404 動態生成靜態頁

本專案採 DNN 風格單頁面架構,最佳實作為覆寫 Render 方法。

核心程式碼

protected override void Render(HtmlTextWriter writer) 
{
    if (HttpContext.Current.Items.Contains("createstaticfile")) 
    {
        string file = (string)HttpContext.Current.Items["createstaticfile"];
        using (System.IO.StringWriter html = new System.IO.StringWriter()) 
        {
            using (HtmlTextWriter tw = new HtmlTextWriter(html)) 
            {
                base.Render(tw);           // 正常渲染至 StringWriter
                Response.Write(html);      // 輸出給瀏覽器
                StaticFile.CreateHtml(file, html.ToString(), Response.ContentEncoding); // 存檔
            }
        }
    }
    else 
    {
        base.Render(writer); // 正常流程
    }
}

關鍵點

  • 透過 HttpContext.Items 傳遞「需靜態化」訊號與檔案路徑。
  • 使用 StringWriter 捕獲完整 HTML 輸出。
  • 靜態檔案儲存邏輯封裝於 StaticFile.CreateHtml。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved