如何将此文件提示给用户?

时间:2011-04-28 06:56:24

标签: c# jquery ajax asp.net-mvc-3 pdf-conversion

您好我正在开发一个 MVC3 Razor项目,我已经坚持这个问题几个小时了......

我正在尝试使用html to pdf转换器向用户提供文档...

我想要的是以下......

呈现并显示页面。在页面的底部应该有一个小图标显示类似下载为pdf。这是我的问题所在......

我想要的所有数据都是在$("#content").html();

内动态创建的

所以我试过的是一个jquery / ajax函数将$("#content").html();作为参数传递给我的函数,它创建了pdf(但我不知道如何向用户提示创建的文件?)

其他解决方案是@(Html.ActionLink()),但我不知道如何在该链接中传递数据($("#content").html())

当尝试使用functionallity来使用转换器转到url是一个死胡同,因为它有自己的会话并被重定向到登录页面。

任何帮助都会得到满足!

4 个答案:

答案 0 :(得分:0)

为什么只创建一个函数,将创建的PDF(在ajax请求期间)作为文件结果返回,然后在ajax请求成功完成后设置窗口的位置以指向此操作?

编辑:这意味着您不会在任何地方保存PDF。因此,解决方法是使用此jquery download plugin或动态附加iframe,然后通过它发布数据。希望这可以帮助。

答案 1 :(得分:0)

我不熟悉JavaScript,但是如果您首先通过调用Web服务方法将PDF保存在临时文件中,然后在完成后可以使用JavaScript导航到生成的PDF将作为返回的URL内容。

答案 2 :(得分:0)

由于XmlHTTPRequest对象无法处理htmltextjsonjsonpxml以外的数据类型,因此您需要重定向到pdf位置。

我不确定你在Ajax请求中到底做了什么,但是一旦完成,你就可以将窗口(Form-Action)重定向到创建的PDF的位置。这实际上不会重定向浏览器,只会提示保存文件。

答案 3 :(得分:0)

找出一个解决方法,我所做的是为我的HtmlHelper编写扩展,并使用它将我的控件呈现为html字符串而不是视图。因此,我可以使用actionlink来渲染此页面并以此方式获取所有html数据。

http://msug.vn.ua/Posts/Details/3301

谢谢你的帮助!