我們正在構建CMS。該網站將由aspx頁面中的用戶構建和管理,但我們希望創建一個靜態HTML網站。 我們現在要做的方式是使用代碼我發現here重載Aspx頁面中的Render方法並將HTML字符串寫入文件。這對於單個頁面來說工作正常,但我們的CMS的事情是,我們希望從一開始就爲網站自動創建一些HTML頁面,甚至在創作者編輯系統中的任何內容之前。 有誰知道有任何方法可以做到這一點?將ASPX導出到HTML
回答
調用Render
方法仍然非常簡單。只需創建一個頁面實例,創建一個存根WebContext
以及WebRequest
對象,並調用頁面的Render
方法。然後,您可以隨意做任何你想要的結果。
或者,寫一點curl
或wget
腳本來下載和存儲您想要製作靜態的任何頁面。
您可以使用wget(一個命令行工具)遞歸查詢每個頁面並將它們保存爲html文件。它會更新所產生html中的所有必要鏈接,以引用.html文件而不是.aspx。這樣,您可以將所有網站編碼爲使用服務器生成的頁面(更容易測試),然後將其轉換爲靜態頁面。
如果您僅僅出於性能原因需要靜態HTML,那麼我的偏好就是使用ASP.Net輸出緩存。
我建議你這樣做一個非常簡單的方法,不要在代碼中完成。它將允許您的CMS代碼執行CMS代碼應該執行的操作,並儘可能簡化操作。
使用產品,如HTTrack。它稱自己爲「網站複印機」。它抓取一個網站並創建html輸出。它快速而且免費。你可以讓它運行在你認爲最好的頻率上。
它將您的HTML輸出需求從您的CMS設計和實現中分離出來。它降低了複雜性,併爲您輸出HTML的方式提供了一定的靈活性,而無需在CMS代碼中引入失敗點。
@ckarras:我寧願不使用外部工具,因爲我希望以編程方式創建HTML頁面而不是手動創建。
@jttraino:我沒有時間間隔需要輸出站點 - 當用戶創建一個新站點時,輸出必須發生。
@Frank Krueger:我真的不明白如何使用WebContext和WebRequest創建我的頁面實例。
我在searchdotnet中搜索了「wget」,並得到了關於名爲WebClient的.net類的a post。它似乎做我想要的,如果我使用DownloadString()方法 - 從特定的URL獲取一個字符串。問題是,因爲我們的CMS需要登錄到,當方法試圖到達頁面時,它被扔到登錄頁面,因此返回login.aspx HTML ...
任何想法如何可以從這裏繼續嗎?
我似乎已經找到了解決方案,我的問題使用Server.Ecxcute方法。
我發現一個article是demonstared使用它:
TextWriter textWriter = new StringWriter();
Server.Execute("myOtherPage.aspx", textWriter);
然後我做了的TextWriter幾個maniulatons,並將其插入到HTML文件。 Et瞧!有用!
- 1. 將Gridview導出到Excel,但整個aspx頁面導出代替
- 2. 將ASPX重定向到HTML
- 3. GridView導出到Excel導出整個aspx頁面
- 4. 導出.page到.html
- 5. Pgadmin導出到html
- 6. 將QTP結果導出到html報告
- 7. 將HTML表格導出到Excel - 選項?
- 8. 將HTML表格導出到MS Excel 2010
- 9. 將HTML表格數據導出到Excel
- 10. 使用JQuery將HTML導出到Excel
- 11. 如何將Silverlight 2.0 DataGrid導出到html?
- 12. 將HTML表格導出到Excel
- 13. 將HTML網站導出到Scorm兼容
- 14. 將aspx頁保存爲html
- 15. 將html轉換爲aspx
- 16. 將HTML導出爲PDF
- 17. 將Excel表導出爲HTML
- 18. 將R表導出爲HTML
- 19. 將html表導出爲pdf
- 20. 將HTML頁導出爲PDF
- 21. 將ReportViewer導出爲HTML
- 22. 從html映射到aspx
- 23. 在html中將html導出爲pdf
- 24. 導出DataGridView到HTML頁面
- 25. 從illustrator導出到html css
- 26. 導出HTML表到csv
- 27. 導出HTML表到Excel
- 28. 導出HTML表到Word
- 29. 從HTML導出到MS Word
- 30. QTextImageFormat未導出到HTML
我發現文章太多了。我寧願找到這個更簡單的http://msdn.microsoft.com/en-us/library/fb04e8f7.aspx – 2011-10-17 15:30:07