Как передать сложный объект другому представлению в ASP.NET MVC? - PullRequest
4 голосов
/ 30 ноября 2008

Я пытаюсь передать сложный объект (который можно сериализовать, если это поможет) в другое представление.

В настоящее время это код, который у меня есть, в каком-то методе контроллера: -

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

Теперь у меня есть следующее действие в том же контроллере ...

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

Когда я устанавливаю точку останова, код останавливается на этом, но значение user равно null. Что мне нужно сделать? Я что-то упустил в global.asax?

ура :) 1014 *

1 Ответ

8 голосов
/ 30 ноября 2008

Поместите ваш пользовательский объект в TempData. Вы не можете передать его в качестве параметра.

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

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

Аналогично Как мне поддерживать ModelState с RedirectToAction?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...