2008-11-30 7 views
4

J'essaye de passer un objet complexe (qui peut être sérialisé, si cela aide) à une autre vue.Comment passer un objet complexe à une autre vue dans ASP.NET MVC?

Actuellement c'est le code que j'ai, dans une méthode de commande: -

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

maintenant, j'ai l'action suivante dans le même contrôleur ...

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

Quand je tournerai un point d'arrêt là, le code s'arrête là, mais la valeur de user est null. Que dois-je faire? Suis-je manquer quelque chose dans le global.asax?

acclame :)

Répondre

8

Mettez votre objet Utilisateur dans TempData. Vous ne pouvez pas le passer en paramètre.

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

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

similaires à How can I maintain ModelState with RedirectToAction?

+0

Il est vieux, mais a aidé à résoudre mon problème. Merci! – nrod

Questions connexes