2

私は次のような方法のコントローラーを持っています:

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

ここで、これと同じことを行うが、ActionResultの代わりにde HTML(文字列)を返す別のメソッドを作成したいと思います。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 に答える