C# 在C中获取MVC应用程序的文档OuterHTML#

C# 在C中获取MVC应用程序的文档OuterHTML#,c#,asp.net-mvc,asp.net-mvc-4,c#-4.0,C#,Asp.net Mvc,Asp.net Mvc 4,C# 4.0,我们需要将MVC应用程序的整个页面导出为PDF,以便获得所有HTML内容(即,也包括动态内容) 为了获得页面的内容,我们使用了以下代码 string contents = File.ReadAllText(path); 但是,它将只提供页面的静态内容(即,它提供页面源代码),而不是DOM中添加的新节点 然后尝试以下代码,但这也会提供静态内容 // WebClient object WebClient client = new WebClient(); // Retrieve resource

我们需要将MVC应用程序的整个页面导出为PDF,以便获得所有HTML内容(即,也包括动态内容)

为了获得页面的内容,我们使用了以下代码

string contents = File.ReadAllText(path);
但是,它将只提供页面的静态内容(即,它提供页面源代码),而不是DOM中添加的新节点

然后尝试以下代码,但这也会提供静态内容

// WebClient object
WebClient client = new WebClient();

// Retrieve resource as a stream
Stream data = client.OpenRead(new Uri("xxxx.html"));

// Retrieve the text
StreamReader reader = new StreamReader(data);
string htmlContent = reader.ReadToEnd();
因此,我想在不使用任何第三方DLL的情况下,在C#中获取文档的enitre outerHTML。我在谷歌上搜索了这么多链接,每个人都像使用webbrowser control一样进行了更新,并获得了内容

我不知道这对我们的应用有什么用处。我们的应用程序是MVC4。我们需要将enitre页面导出为PDF,因此我们需要HTML的enitre内容(也需要动态内容)

如何在我们的MVC应用程序中使用下面的代码来获取文档outerHTML

mshtml.HTMLDocument doc = webBrowser1.Document.DomDocument as mshtml.HTMLDocument;
string html = doc.documentElement.outerHTML;


这方面的任何帮助。

您还没有提到PDF的用途。最有可能是该页面的访问者下载。如果这是真的,也许你可以用。这样,您就可以避免无法访问整个页面服务器端的问题。

谢谢您的回答,但我想在服务器端执行。我知道有很多插件可以在客户端执行,但希望在C#onlyAh OK中执行。但是,也许我们还是要使用javascript。从客户端获取所有内容,并将其发送到服务器上的某个操作方法。
var documentAsIHtmlDocument3 = (mshtml.IHTMLDocument3)webBrowser.Document.DomDocument;

StringReader sr = new StringReader(documentAsIHtmlDocument3.documentElement.outerHTML); 

htmlDoc.Load(sr)