在 Asp.net MVC中,我想使用url(DownloadString方法)下载html页面内容,以便我可以转换为PDF。Html页面本身使用JSRender绑定到模板。
using (WebClient client = new WebClient())
{
string html = client.DownloadString(url);
}
但是,当我尝试从 URL 下载 HTML 时,它似乎在渲染完成之前下载了页面,所以我得到的实际上是 HTML 几乎预渲染的,这不是我想要的。
甚至有可能使用 WebClient 甚至从服务器端完成我想要实现的目标,而无需以某种方式从客户端执行此操作?
Webclient 在页面完全加载之前不会返回 html。
页面中很有可能有一个JavaScript,当它运行时,它会将更多的东西加载到页面中。 因此,当您下载页面时,该JavaScript不会运行,因此,某些部分无法加载。
试试这个:
static string GetHtmlPage(string strURL)
{
String strResult;
WebRequest objRequest = WebRequest.Create(strURL);
WebResponse objResponse = objRequest.GetResponse();
using (var sr = new StreamReader(objResponse.GetResponseStream()))
{
strResult = sr.ReadToEnd();
sr.Close();
}
return strResult;
}
private void button3_Click(object sender, EventArgs e)
{
MessageBox.Show(GetHtmlPage("http://www.awardwinnersonly.com"));
}