Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将包含jquery生成内容的ASP.NET MVC 5网页导出为PDF_Javascript_Jquery_Ajax_Asp.net Mvc 5_Export To Pdf - Fatal编程技术网

Javascript 将包含jquery生成内容的ASP.NET MVC 5网页导出为PDF

Javascript 将包含jquery生成内容的ASP.NET MVC 5网页导出为PDF,javascript,jquery,ajax,asp.net-mvc-5,export-to-pdf,Javascript,Jquery,Ajax,Asp.net Mvc 5,Export To Pdf,我有和MVC5视图,其中包含html代码以及一些js/jquery脚本 1) 当控制器调用视图时,将呈现视图的html内容 2) 然后,脚本开始工作:一个ajax调用sqlserver获取下拉列表的一些值 3) 完成此ajax并用值(包括默认值)填充下拉列表后,将启动几个ajax查询,读取下拉列表值并绘制一些表格(使用)或图表(使用和chart.js) 在那之后,页面就准备好了。但若用户从下拉列表中选择一个值,第3)点将再次完成,部分表格和图表将被重新绘制 此体系结构仅用于提供所需表格/图表的更

我有和MVC5视图,其中包含html代码以及一些js/jquery脚本

1) 当控制器调用视图时,将呈现视图的html内容

2) 然后,脚本开始工作:一个ajax调用sqlserver获取下拉列表的一些值

3) 完成此ajax并用值(包括默认值)填充下拉列表后,将启动几个ajax查询,读取下拉列表值并绘制一些表格(使用
)或图表(使用
和chart.js)

在那之后,页面就准备好了。但若用户从下拉列表中选择一个值,第3)点将再次完成,部分表格和图表将被重新绘制

此体系结构仅用于提供所需表格/图表的更新,并提供快速和交互式的用户体验。从下拉列表中选择参数不会重新加载整个页面,而只会重新绘制所需的div(在前端)

但是,当我想使用ASP.NETMVC库将此页面导出为pdf文件时,这种体系结构导致了一个问题。所有这些库(现在我使用的是Select.Pdf社区版)调用一个控制器方法,接收一个视图,并将其转换为Pdf文件。在我的例子中,如果用户在下拉列表中选择某个内容,重新绘制页面并希望将其作为pdf,pdf库将调用view,并且该页面将在默认视图中保存为pdf,而用户所做的更改不多

现在,我看到的唯一解决方案是忘记响应用户体验,在controller方法中添加5-10个参数(每个下拉列表一个),并在controller中读取和处理这些参数,而不是在js中


所以,问题是:我是否应该将项目转换为传统的ASP.NET MVC方法?或者我最终应该从js生成一个pdf文件吗?

请参见此处:…因此,理论上,您可以基于当前DOM从js导出为pdf:-)。到目前为止,为了达到您的要求,您做了哪些研究/尝试?我已经更正了我的问题。当然,似乎有一些js库可以生成pdf文件,甚至可以将html放入其中:-)现在我来看看jsPDf和makePdf,我希望它们可以使用css并导出
es。但我的问题可能听起来像-我在这里使用客户端方法对吗?既然您正在进行客户端更改,那么是的,除非您能找到一种方法将这些更改的记录发布回您的服务器,这样它们就可以重新呈现到一些HTML生成的服务器端,但这听起来似乎比它的价值更麻烦。@ADyson我也想过用cookies来存储这些信息,但由于容量和用途的限制,这种方式就像一种管道胶带:)我不确定cookies会有什么帮助?他们住在客户端。