【发布时间】:2015-01-07 21:35:29
【问题描述】:
我想从包含样式和脚本的视图中打印 PDF 文档。应用脚本和样式后,我如何阅读整个视图的 html。 它应该在运行 javascript 、 JQuery 、 Angular 等脚本后返回 html。
示例是在页面加载 jquery ajax 发布并填充表格。以下是仅返回 HTML 在 javascript 函数之前在没有填充表格的情况下运行的代码。
public string RenderRazorViewToString(string viewName, object model)
{
ViewData.Model = model;
using (var sw = new StringWriter())
{
var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,
viewName);
var viewContext = new ViewContext(ControllerContext, viewResult.View,
ViewData, TempData, sw);
viewResult.View.Render(viewContext, sw);
viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);
return sw.GetStringBuilder().ToString();
}
}
我想像浏览器页面 HTML 一样获得完整的 java 脚本渲染页面 html
【问题讨论】:
-
我认为您对 asp.net mvc 的工作原理存在根本性的误解。我建议阅读一些介绍性教程、一本介绍性书籍,或观看 MSDN 上的一些免费介绍性视频。
-
Javascript 在客户端运行。在服务器将视图发送给客户端后,服务器不知道客户端在视图中可能发生了什么变化。
-
我已经开发了几个项目。我需要打印带有引导表视图的 PDF 文件。这个函数只给出没有应用脚本的 HTML
-
如果您尝试将页面副本呈现为 PDF 服务器端,这是一个非常不同的问题。我建议您以这种方式重新提出问题并提出问题。即,如何生成我的 MVC 视图的 PDF 副本,以便它包含 js 修改。
-
@philip 我已经编辑了问题并更改了标题。请看一下
标签: c# asp.net-mvc pdf-generation phantomjs wkhtmltopdf