Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do i pass a complex object to another View in ASP.NET MVC?

Tags:

asp.net-mvc

I'm trying to pass a complex object (that can be serialized, if that helps) to another view.

Currently this is the code i have, in some controller method :-

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

now, i have the following action in the same controller ...

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

When i set a breakpoint in there, the code does stop there, but the value of user is null. What do i need to do? Am i missing something in the global.asax?

cheers :)

like image 882
Pure.Krome Avatar asked Mar 01 '23 04:03

Pure.Krome


1 Answers

Put your User object in TempData. You can't pass it as a parameter.

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

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

Similar to How can I maintain ModelState with RedirectToAction?

like image 113
tvanfosson Avatar answered May 01 '23 18:05

tvanfosson