ASP.NET MVC 3 получить HTML от viewmodel - PullRequest
2 голосов
/ 08 июня 2011

У меня есть контроллер с методом, подобным этому:

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

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

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

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

Есть идеи?

Спасибо!

1 Ответ

2 голосов
/ 08 июня 2011
    public ActionResult GetPDF()
    {
     // Do your report generation here
     byte[] Buffer = [Get the rendered pdf file]
     return File( Buffer, "application/pdf", Server.HtmlEncode("[Report Name]") );
    }
...