2014-09-12 47 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

相关问题