2008-11-30 78 views
4

我想通过一个复杂的对象(可以序列化,如果有帮助)到另一个视图。如何将复杂的对象传递给ASP.NET MVC中的另一个视图?

目前这是代码我有,在一些控制方法: -

User user = New User { Name = "Fred, Email = "xxxx" }; 
return RedirectToAction("Foo", user); 

现在,我已经在同一个控制器中执行以下操作...

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult Foo(User user) 
{ 
... 
} 

当我设置一个那里的断点,代码在那里停止,但user的值是null。 我需要做什么?我在global.asax中错过了什么吗?

欢呼声:)

回答

8

将您的用户对象放入TempData中。您无法将其作为参数传递。

TempData["User"] = new User { Name = "Fred", Email = "xxxx" }; 
return RedirectToAction("Foo"); 

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult Foo() 
{ 
    User user = (User)TempData["User"]; 
    ... 
} 

How can I maintain ModelState with RedirectToAction?

+0

这是旧的,但有助于解决我的问题类似。谢谢! – nrod 2013-01-04 16:28:40

相关问题