2014-09-12 48 views
0

我有一個使用Visual Studio 2013製作的Web窗體應用程序解決方案,我想從中生成靜態的HTML頁面。有沒有人知道一個好的工具或腳本,並有這方面的經驗?我試過Pretzel,但它不支持ASP。如何從ASP.NET Web Forms應用程序生成靜態HTML頁面

+0

是否有你希望產生一個特別的原因來自ASP.NET頁面的靜態頁面?只要確保沒有更好的解決方案。 – Kirk 2014-09-12 14:46:05

+0

@Kirk「你需要找到一些工具或者VS插件或者IIS插件或者類似的工具,很容易做到這一點,計劃是將所有的Default.aspx和其他.aspx頁面生成爲靜態html. Default.aspx - > Default.html,Page1.aspx - > Page1.html等...工具運行後的結果應該是普通html頁面的列表,不需要任何背景cs代碼。 「我的任務。 – 2014-09-12 14:54:49

回答

1

這裏是我使用的代碼,它工作正常:

Uri url = new Uri(serverPath + pageName); 
WebClient wc = new WebClient(); 
wc.Headers.Add(HttpRequestHeader.Accept,"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); 
wc.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0"); 

string finalHTML = wc.DownloadString(url); 

//change the asp extensions if there are any linking 
finalHTML = finalHTML.Replace(".aspx", ".html");  

//create HTML file 
System.IO.File.WriteAllText(string.Format("{0}{1}", filePathSave, pageName), finalHTML); 
2

可以使用HtmlTextWriter作爲生成HTML頁面:

using (StreamWriter sw = new StreamWriter(Server.MapPath("fileName.html"))) 
using (HtmlTextWriter writer = new HtmlTextWriter(sw)) 
{ 
    writer.RenderBeginTag(HtmlTextWriterTag.Html); 

    writer.RenderBeginTag(HtmlTextWriterTag.Head); 
    writer.Write("Head Contents"); 
    writer.RenderEndTag(); 

    writer.RenderBeginTag(HtmlTextWriterTag.Body); 
    writer.Write("Body Contents"); 
    writer.RenderEndTag(); 

    writer.RenderEndTag(); 
} 
+0

感謝您的回答,但我在渲染時遇到了問題。 – 2014-09-19 14:17:22

相關問題