我尝试使用Rotativa库(1.6.4)使用ActionAsPdf发送参数,遗憾的是,函数被调用但其中的参数List<T_Trainee> trainee= new List<T_Trainee>();
foreach (int f in foo)
{
T_Trainee t = new T_Trainee();
t.email = (string)Session["Mail"];
t.phone = (string)Session["Phone"];
trainee.Add(t);
}
//code to get the PDF
ActionAsPdf pdf = new ActionAsPdf("Index", trainee) { FileName = "Bulletin.pdf" };
始终为null。
这是我的代码:
//function that return the PDF
public ActionResult Index(List<T_Trainee> trainee)
{
ViewModelFoo vmc = new ViewModelFoo();
vmc.trainee = trainee;
return View(vmc);
}
Trainee var是一个对象列表T_Trainee not null - &gt;在debug中看到:
x:Phase
当在调试模式下调用该函数时,我可以清楚地看到参数&#34;实习生&#34;是空的,但我仍然不明白为什么。
任何人都可以帮助我吗?谢谢!
答案 0 :(得分:1)
在最新版本的Rotativa中,ActionAsPdf似乎是一个已弃用的函数。
我通过ViewAsPdf更改了它,现在它可以工作了。这两个函数之间的区别在于您必须使用ViewAsPdf直接在Index方法调用中发送视图模型。
这是我的代码,我希望它会帮助某人:
调用索引并发送viewModel的代码
ViewModelFoo vmc = new ViewModelFoo();
List<T_Trainee> trainees= new List<T_Trainee>();
foreach (int f in foo)
{
T_Trainee t = new T_Trainee();
t.email = (string)Session["Mail"];
t.phone = (string)Session["Phone"];
trainees.Add(t);
}
vmc.trainees = trainees;
//code to get the PDF
ViewAsPdf pdf = new ViewAsPdf("Index", vmc)
{
FileName = "File.pdf",
PageSize = Rotativa.Options.Size.A4,
PageMargins = { Left = 0, Right = 0 }
};
生成视图的索引
public ActionResult Index()
{
return View(vmc);
}
答案 1 :(得分:0)
foo是否已填充?
尝试示例代码......
列出受训者=新名单(); trainee.Add(new T_Trainee {email =“sample@email.com”,phone =“555-1212”});
这有用吗?
您还可以尝试将Action绑定到模型
公共ActionResult索引(ViewModelFoo vmc)