如何将复杂对象传递给ASP.NET MVC中的另一个视图?

Pur*_*ome 4 asp.net-mvc

我正在尝试将一个复杂的对象(可以序列化,如果有帮助)传递给另一个视图.

目前这是我的代码,在某些控制器方法中: -

User user = New User { Name = "Fred, Email = "xxxx" };
return RedirectToAction("Foo", user);
Run Code Online (Sandbox Code Playgroud)

现在,我在同一个控制器中有以下动作......

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Foo(User user)
{
 ...
}
Run Code Online (Sandbox Code Playgroud)

当我在那里设置一个断点,代码中并停在那里,但价值usernull.我需要做什么?我错过了什么global.asax吗?

欢呼:)

tva*_*son 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"];
    ...
}
Run Code Online (Sandbox Code Playgroud)

类似于如何使用RedirectToAction维护ModelState?