【发布时间】:2009-08-24 12:37:14
【问题描述】:
在 ASP.NET MVC 应用程序中,我有一个操作 Page() 来呈现页面(如 wiki 页面)。
现在,我有另一个动作 RenderPdf() 应该收集 Page() 的 HTML 输出并使用 HTML2PDF 组件创建该页面的 PDF 版本。
如何在另一个动作中收集一个动作的 HTML 输出。注意:不是在视图中,而是直接在动作代码中。
【问题讨论】:
标签: asp.net-mvc rendering action
在 ASP.NET MVC 应用程序中,我有一个操作 Page() 来呈现页面(如 wiki 页面)。
现在,我有另一个动作 RenderPdf() 应该收集 Page() 的 HTML 输出并使用 HTML2PDF 组件创建该页面的 PDF 版本。
如何在另一个动作中收集一个动作的 HTML 输出。注意:不是在视图中,而是直接在动作代码中。
【问题讨论】:
标签: asp.net-mvc rendering action
您可以使用MVC Futures 程序集。
有一个名为 RenderAction() 的方法可以获取动作的 HTML 输出,但从视图内部...
【讨论】:
如果 pdf 只是输出的副本,您不能使用 javascript 捕获图像并传回 Render PDF 吗?
或者,将 pdf 版本传递给与第一个操作相同的模型中的视图。如果/直到用户需要它时保持隐藏?
【讨论】:
你可以查看这个遮阳篷来回答类似的问题:
Send ASP.NET MVC action result inside email
显然,您需要将 SendEmailKThx() 调用替换为 HTML2PDF PDF 生成。
【讨论】:
Jan Willem B 建议的方法有效,我在 ASP .NET MVC 1 上对此进行了测试。
在调用 GetActionOutput 时,仅使用控制器的名称。例如,如果调用的控制器名称是 AccountController,则仅将其寻址为 Account。
例如如果您想在 AccountController 上调用测试方法,则语法为... GetActionOutput("账户", "测试");
【讨论】: