2010-10-23 181 views
1

一些客戶要求製作一些靜態網站,因爲他們的主機不支持服務器端語言。現在我想知道是否有任何工具/技術用於從Asp.net網站生成靜態網站?來自ASP.NET網站的靜態網站

我問的原因是因爲沒有masterpage或任何形式的模板,它變得非常麻煩。

我記得5年前Dreamweaver有一個基於html註釋的模板系統,但我不太喜歡它,所以我想避免這種情況。

+1

你應該能夠從谷歌找到大量的搜索結果,嘗試搜索「網站下載」 – Kane 2010-10-23 12:40:11

+0

這不是一個壞主意,謝謝。 – Pickels 2010-10-23 16:22:34

回答

4

查看RenderControl方法。它基本上允許您將任何ASP.NET頁面的內容轉儲爲HTML。因此,您可以動態構建您的網站,然後將其全部轉存爲HTML並上傳到您的古董服務器。

這裏有一點幫助的代碼,我從我的項目之一刷卡獲得任何頁面的內容轉換成字符串:

public class RenderHelper 
{ 
    public static string RenderControl(Control control) 
    { 
     StringBuilder result = new StringBuilder(1024); 
     control.RenderControl(new HtmlTextWriter(new StringWriter(result))); 
     return result.ToString(); 
    } 
    public static string RenderControl(TemplateControl control) 
    { 
     StringBuilder result = new StringBuilder(1024); 
     control.RenderControl(new HtmlTextWriter(new StringWriter(result))); 
     return result.ToString(); 
    } 
    public static string RenderPage(string pageLocation) 
    { 
     HttpContext context = HttpContext.Current; 
     StringBuilder result = new StringBuilder(1024); 
     context.Server.Execute(pageLocation, new HtmlTextWriter(new StringWriter(result))); 
     return result.ToString(); 
    } 
} 
0

你可以一個js文件鏈接到您所做的任何新頁面。例如,一個文件具有寫出頁腳和頁眉的功能,並且基本上讓js寫入html。這是一個僞網頁模板有點像PHP包括或母版頁的方法,但沒有任何服務器端的東西。

+0

我曾考慮過它,但沒有做到這一點,因爲優雅的退化。 – Pickels 2010-10-23 16:22:01