各パートナーのARのpdfコピーを生成する必要があり、そのためにモデルをTempData経由で別のビューに渡そうとしていますが、常にnullを返します。モデルをActionAsPdfに渡すことができないようです
以下は私のコードです。
public ActionResult GenerateARPDFs(string dateasof)
{
dateasof = "03-31-17";
var report = new ReportViewModel();
report.AccountsReceivable = _bhelper.GetAccountsReceivable("", "", "", DateTime.Parse(dateasof)).
Where(w => !w.SOANum.Any(y => char.IsLetter(y)) ||
w.SOANum.Contains("SOA")).ToList<AccountsReceivable>();
foreach (var partner in report.AccountsReceivable.Select(m => m.BP).Distinct())
{
TempData["MyModel"] = report;
var actionResult = new ActionAsPdf("AccountsReceivableReport_PerPartner", new { employeecode = partner })
{
PageSize = Rotativa.Options.Size.Letter,
PageOrientation = Rotativa.Options.Orientation.Landscape,
PageMargins = new Rotativa.Options.Margins(5, 5, 5, 5),
MinimumFontSize = 12
};
var byteArray = actionResult.BuildPdf(ControllerContext);
var fullPath = ConfigurationManager.AppSettings["ArPDF"].ToString() + @"\" + partner + ".pdf";
var fileStream = new FileStream(fullPath, FileMode.CreateNew, FileAccess.ReadWrite);
fileStream.Write(byteArray, 0, byteArray.Length);
fileStream.Close();
}
TempData["SuccessMessage"] = "Generation successful!";
return View();
}
public ActionResult AccountsReceivableReport_PerPartner(string employeecode)
{
var report = (ReportViewModel)TempData["MyModel"];
report.AccountsReceivable = filter by partner here////....;
return View(report);
}
しかし、AccountsReceivableReportに達すると、tempdataは常にnullになります。 AccountsReceivableReport()でSPを呼び出すことはできますが、時間がかかることがあります。
tempsataをActionAsPdfに渡す際に問題がありますか? 私はrotativa btwを使用しています。私はブレークポイントを挿入
、TempDataを[「mymodelという」]は成功した結果で満たされているが、私はAccountsReceivableReport_PerPartner()
するための方法に到達したとき、それは今nullです。
私はViewAsPdfするActionAsPdfからそれを変更しようとした場合、それはbuildPdf部にエラーを返し
私はセッションにそれを切り替え、それはまだヌル –
セッション[ "mymodelという"] =レポートです。これもセット? –
ええ、私もその部分を変更しました。 –