2

我有一个控制器,其方法如下:

public ActionResult Index()
{
    CustomerInfoViewModel viewModel = CustomerInfoModel.Load();
    return View("Report", viewModel);
}

现在我想创建另一种方法,它与这个方法相同,但返回 de HTML(字符串)而不是 ActionResult。有没有办法获得 ActionResult 将呈现的 HTML 或类似的东西?

为什么我需要这个?这是我以 HTML 格式显示的报告。但用户可以下载带有报告的 PDF。为此,我正在使用ABCPdf。我必须想办法构建 PDF 文件。

  1. 来自 HTML 字符串。(这就是为什么我想做我所要求的)。
  2. 从一个 URL。在这种情况下,服务器启动对该 URL 的请求(我可以使用上面发布的方法的 URL)。问题是这个请求是一个新请求,所以我丢失了会话信息(在报告中使用)。

有任何想法吗?

谢谢!

4

1 回答 1

2
    public ActionResult GetPDF()
    {
     // Do your report generation here
     byte[] Buffer = [Get the rendered pdf file]
     return File( Buffer, "application/pdf", Server.HtmlEncode("[Report Name]") );
    }
于 2011-06-08T14:06:20.110 回答