当代码跳转到CreateProduct()时,填充的catList始终为Count = 0,因此我认为它不会交付。
考虑到RouteValueDictionary不这样做吗?还有其他方法吗?

       public ActionResult GetCats(int CatID)
    {

        List<Category> catList = new List<Category>();

        if (CatID >= 0 )
        {

            catList = context.Categories.Where(x => x.PCATID == CatID).ToList();
        }


        return RedirectToAction("CreateProduct", "Admin", new { catList });
    }





public ActionResult CreateProduct(List<Category> catList) {      }

最佳答案

您实际上是在尝试使用控制器进行数据访问。

将“ GetCats”数据检索移动到您的业务层(服务对象,存储库,任何适合您的位置)中。

然后,CreateProduct将需要存在两次(2个签名)。一种没有参数的代码,您将在其中从业务层调用“ GetCats”并将其发送到视图。

另一个实现将带有HttpPostAttribute标记,并将在参数中包含创建猫的所有必要信息。

就这样。简单容易。

关于asp.net - MVC RedirectToAction()有什么方法可以将对象传递给目标操作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7598444/

10-17 00:06