我正在编写一个应用程序,其中我需要将System.Collections.ArrayList数据作为参数从一个控制器动作发送到另一个控制器动作。 我正在使用
return RedirectToAction("action1","controller1", new { arrList = arrListInFirstAction});
但是由于ArrayList超出了第一个操作的范围,重定向到action的参数会收到一个null参数。
有人可以帮我找到这个问题的答案。
感谢。
答案 0 :(得分:3)
您不能将复杂类型作为路由参数发送。但是,您可以使用TempData集合为一个请求保留该对象,并在下次请求时自动从集合中删除
publci ActionResutl action()
{
TempData["arr"] = new int[]{1,2,3};
return RedirectToAction("action1");
}
Public ActionResult action1()
{
int[] arr = TempData["arr"];
return View();
}