0
我需要生成每個合作伙伴的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始終爲空。 我可以只記得AccountsReceivableReport()上的SP,但這會花費更長的時間。
將tempdata傳遞給ActionAsPdf有問題嗎? 我使用rotativa btw。
當我插入斷點時,TempData [「MyModel」]成功地填充了結果,但是當我到達AccountsReceivableReport_PerPartner()
的方法時,它現在爲空。
如果我嘗試從ActionAsPdf改變ViewAsPdf它的buildPdf部分
甚至當我切換到一個會話,它仍然是空 –
會議[ 「爲MyModel」] =報告;設置這個呢? –
是的,我也改變了那部分。 –