2015-03-25 4 views
0

Я использую Rotativa (версия 1.6.3) для создания pdf-файла из моего представления. У меня есть простой частичный вид (_OverallResultPrintVersion.cshtml):Действие mvc не вызывается из Rotativa PartialViewAsPdf

@Styles.Render("~/bundles/css") 

<img src="@Url.Action("DrawChart", "Vote", new {area = "Award"})"/> 

В моем действии при возвращении Rotativa PartialViewAsPdf, он открывает пустую страницу в формате PDF и действие «DrawChart» не будет называться, как и ожидалось. Вот как я реализовал мои действия в контроллере Голосуй:

public ActionResult OverallResultPdf() 
{ 
    return new Rotativa.PartialViewAsPdf(
    @"~\Areas\Award\Views\Shared\Widget\_OverallResultPrintVersion.cshtml"); 
} 

public ActionResult DrawChart() 
{ 
    var model = getModel(); 
    return PartialView("Widget/_VotesColumnChart", model); 
} 

При замене источника изображения в частичном к URL-адрес, он показывает изображение, но это не то, что я пытаюсь добиться. Любая идея, почему Rotativa PartialViewAsPdf не может вызвать мое действие с частичного просмотра?

PS: для этих действий нет ограничений на авторизацию, поэтому мне не нужно инициировать свойство FormsAuthenticationCookieName при создании PartialViewAsPdf.

ответ

1

здесь обходной путь для решения проблемы. Это стоит добавить новое действие! (GeneralResultPrintVersion) и в действии GeneralResultPdf вместо возвращения PartialViewAsPdf необходимо вернуть ActionAsPdf.

public ActionResult OverallResultPdf() 
{ 
    return new Rotativa.ActionAsPdf("OverallResultPrintVersion"); 
} 

public ActionResult OverallResultPrintVersion() 
{ 
    return PartialView("Widget/_OverallResultPrintVersion"); 
} 

и действие DrawChart() остается нетронутым.

Смежные вопросы