我正在创建asp.net mvc 5应用程序。在这个应用程序中,我遇到了在控制器方法之间传递数据的问题。
这里的情景一步一步
我正在将IEnumerable
数据集转换为Create_Brochure
这样的方法
public ActionResult Create_Brochure(IEnumerable<ProductsPropertiesVM> model)
{
IEnumerable<BrochureTemplateProperties> sample = model.Where....
return View(sample);
}
然后我需要将IEnumerable<ProductsPropertiesVM> model
保存到另一个IEnumerable
对象,并在Create_Brochure_PDF()
方法中使用
public ActionResult Create_Brochure_PDF()
{
IEnumerable<BrochureTemplateProperties> samplePDF = modelPDF....
return View(samplePDF);
}
对于那个有点R&amp; D部分,并提出了 Sessions 的解决方案,这里the tutorial我跟着
所以我改变了我的代码
但似乎我有编译时错误,但我遵循完全作为教程
第一控制器方法
[HttpPost]
[ValidateInput(false)]
public ActionResult Create_Brochure(IEnumerable<ProductsPropertiesVM> model)
{
IEnumerable<ProductsPropertiesVM> modelPDF = new IEnumerable<ProductsPropertiesVM>();
modelPDF = model;
IEnumerable<BrochureTemplateProperties> sample = model.Where(y => y.IsChecked)
.Select(y => new BrochureTemplateProperties
{
Property_ID = y.Property_ID,
IsChecked = y.IsChecked,
Property_Title = y.Property_Title,
Property_Value = y.Property_Value
});
TempData["TemplateData"] = modelPDF;
return View(sample);
}
第二控制器方法
public ActionResult Create_Brochure_PDF()
{
IEnumerable<ProductsPropertiesVM> modelPDF = TempData["TemplateData"] as IEnumerable<ProductsPropertiesVM>;
IEnumerable<BrochureTemplateProperties> samplePDF = modelPDF.Where(y => y.IsChecked)
.Select(y => new BrochureTemplateProperties
{
Property_ID = y.Property_ID,
IsChecked = y.IsChecked,
Property_Title = y.Property_Title,
Property_Value = y.Property_Value
});
return View(samplePDF);
}
答案 0 :(得分:1)
您无法实例化界面..!
替换
IEnumerable<ProductsPropertiesVM> modelPDF = new IEnumerable<ProductsPropertiesVM>();
modelPDF = model;
使用
IEnumerable<ProductsPropertiesVM> modelPDF = model;
在Create_Brochure
方法中。