C# 使用WebClient问题下载HTML页面

C# 使用WebClient问题下载HTML页面,c#,html,asp.net,asp.net-mvc,C#,Html,Asp.net,Asp.net Mvc,在Asp.NETMVC中,我想使用url(DownloadString方法)下载html页面内容,这样就可以将其转换为PDF格式。Html页面本身正在使用JSRender绑定到模板 using (WebClient client = new WebClient()) { string html = client.DownloadString(url); } 然而,当我试图从Url下载Html时,它似乎在呈现完成之前下载了页面,所以我得到的实际上是Html几乎是预呈现的,这不是

在Asp.NETMVC中,我想使用url(DownloadString方法)下载html页面内容,这样就可以将其转换为PDF格式。Html页面本身正在使用JSRender绑定到模板

 using (WebClient client = new WebClient())
 {
      string html = client.DownloadString(url);
 }
然而,当我试图从Url下载Html时,它似乎在呈现完成之前下载了页面,所以我得到的实际上是Html几乎是预呈现的,这不是我想要的


甚至可以使用WebClient或甚至从服务器端执行我试图实现的操作,而不必从客户端执行此操作吗?

在页面完全加载之前,WebClient不会返回html


页面中很有可能存在javascript,当它运行时,会将更多内容加载到页面中。因此,当您下载页面时,javascript不会运行,因此,某些部分不会加载

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"));
}
试试这个:

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"));
}

没错,我必须将用户代理作为响应标题的一部分发送。您是否自己回答了问题并将自己的答案标记为正确答案?!:)它们都没有提供正确答案,因为它们似乎不适用于原始问题中的场景。没错,我必须将用户代理作为响应标题的一部分发送。您是否自己回答了问题并将自己的答案标记为正确答案?!:)它们都没有给出正确的答案,因为它们似乎不适用于原始问题中的场景。好吧,我相信我正在尝试其他方法,但这不起作用,我下面的答案也不起作用,因为html预期仍然没有返回。它适用于我,因此我不知道你的问题是什么。你有什么错误的味精吗?当您逐步了解它时,会发生什么情况?我使用JSRender绑定到模板,得到的html是html预绑定。您是否尝试过在视图中使用JSRender或Knockout?没有,我显示的代码是完整的代码;这是一种简单实用的方法。这不是项目的一部分;这是一个简单的独立代码。好吧,恐怕它在使用JSRender时不起作用。好吧,我相信我在尝试其他方法,但这不起作用,我下面的答案也不起作用,因为html仍然没有返回。它对我有效,所以我不知道你的问题是什么。你有什么错误的味精吗?当您逐步了解它时,会发生什么情况?我使用JSRender绑定到模板,得到的html是html预绑定。您是否尝试过在视图中使用JSRender或Knockout?没有,我显示的代码是完整的代码;这是一种简单实用的方法。这不是项目的一部分;这是一个简单的独立代码。好吧,恐怕它不适合使用JSRender。