0

我有一个由用户部分填充的表,我想将生成的 HTML 保存到文件中。我正在使用的代码是:

WebClient myClient = new WebClient();
string myPageHTML = null;
byte[] requestHTML;
string currentPageUrl = Request.Url.ToString();
UTF8Encoding utf8 = new UTF8Encoding();
requestHTML = myClient.DownloadData(currentPageUrl);
myPageHTML = utf8.GetString(requestHTML);
string outputFileLocation = currDir + "\\" + "outputFile.html";
FileStream fs = File.Open(outputFileLocation, FileMode.Create, FileAccess.Write);
using (StreamWriter sw = new StreamWriter(fs))
{
    sw.WriteLine(myPageHTML);
}

问题似乎是这段代码发送了一个新的页面请求,所以我最终得到了初始页面视图,而不是用户输入产生的 HTML。

任何建议表示赞赏。

问候。

4

1 回答 1

2

我会将您的方法放在渲染方法中并将其更改为以下

protected override void Render(HtmlTextWriter writer)
{
 sw = new StringWriter();
 htmltw = new HtmlTextWriter(sw); 
 base.Render(htmltw);
 StringBuilder html = sw.GetStringBuilder();

 string outputFileLocation = currDir + "\\" + "outputFile.html";
 FileStream fs = File.Open(outputFileLocation, FileMode.Create, FileAccess.Write);
 using (StreamWriter sw = new StreamWriter(fs))
 {
  sw.WriteLine(html);

 }
 writer.Write(sOut);
}
于 2012-07-18T15:55:58.387 回答