当代码跳转到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/