在控制器方法之间传递数据

时间:2015-11-05 06:04:36

标签: c# asp.net-mvc asp.net-mvc-4 session ienumerable

我正在创建asp.net mvc 5应用程序。在这个应用程序中,我遇到了在控制器方法之间传递数据的问题。

这里的情景一步一步

  1. 我正在将IEnumerable数据集转换为Create_Brochure这样的方法

    public ActionResult Create_Brochure(IEnumerable<ProductsPropertiesVM> model)
    {
    
        IEnumerable<BrochureTemplateProperties> sample = model.Where....
    
        return View(sample);
    }
    

    enter image description here

  2. 然后我需要将IEnumerable<ProductsPropertiesVM> model保存到另一个IEnumerable对象,并在Create_Brochure_PDF()方法中使用

    public ActionResult Create_Brochure_PDF()
    {
    
        IEnumerable<BrochureTemplateProperties> samplePDF = modelPDF....
    
        return View(samplePDF);
    }
    
  3. 对于那个有点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);
        }
    

1 个答案:

答案 0 :(得分:1)

您无法实例化界面..!

替换

IEnumerable<ProductsPropertiesVM> modelPDF = new IEnumerable<ProductsPropertiesVM>();
modelPDF = model;

使用

IEnumerable<ProductsPropertiesVM> modelPDF = model;

Create_Brochure方法中。