ASP.NET MVC 3 получить HTML от viewmodel


У меня есть контроллер с таким методом:

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

Теперь я хотел бы создать другой метод, который делает то же самое, что и этот, но возвращает de HTML (string) вместо ActionResult. Есть ли какой-нибудь способ получить HTML, который будет отображаться ActionResult или что-то в этом роде?

Зачем мне это нужно? Это отчет, который я показываю в HTML. Но у пользователя есть возможность скачать PDF-файл с отчетом. Для этого я использую ABCPdf . Я должен способы построить файл PDF.

  1. из HTML-строки. (Вот почему я хочу сделать то, о чем прошу).
  2. из URL-адреса. В этом случае сервер запускает запрос к этому URL (я могу использовать URL к методу, опубликованному выше). Проблема в том, что этот запрос является новым, поэтому я теряю информацию о сеансе (которая используется в отчете).

Есть идеи?

Спасибо!

1 2

1 ответ:

    public ActionResult GetPDF()
    {
     // Do your report generation here
     byte[] Buffer = [Get the rendered pdf file]
     return File( Buffer, "application/pdf", Server.HtmlEncode("[Report Name]") );
    }