我正在尝试将一个复杂的对象(可以序列化,如果有帮助)传递给另一个视图。
目前这是我的代码,在某些控制器方法中: -
User user = New User { Name = "Fred, Email = "xxxx" };
return RedirectToAction("Foo", user);
现在,我在同一个控制器中执行以下操作......
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Foo(User user)
{
...
}
当我在那里设置断点时,代码会在那里停止,但user
的值为null
。
我需要做什么?我错过了global.asax
吗?
答案 0 :(得分:8)
将您的User对象放在TempData中。您不能将其作为参数传递。
TempData["User"] = new User { Name = "Fred", Email = "xxxx" };
return RedirectToAction("Foo");
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Foo()
{
User user = (User)TempData["User"];
...
}