使用 RedirectToAction 时,视图上的模型为空

Lit*_*nny 3 linq asp.net-mvc entity-framework model

我正在使用 RedirectToAction 在登录后加载一个新页面并用它传入数据库模型。

RedirectToAction("AdministrationPortal", "Manage", person);
Run Code Online (Sandbox Code Playgroud)

person.user 模型是实体框架创建的 User 类。人物模型是

class Person { 
    public User user { get; set; };
    public string roleType { get; set; };
}
Run Code Online (Sandbox Code Playgroud)

在调用 RedirectToAction 时,我节点 person 对象确实保存了数据。

不知道为什么当我在门户页面上使用它时@Model.Person.user为空。

@model namespace.Model.Person
Run Code Online (Sandbox Code Playgroud)

Vis*_*har 5

使用 重定向时不能传递复杂对象RedirectToAction

它用于传递routeValues非模型。

要临时维护重定向结果的状态,您需要将数据存储在TempData.

您可以参考此了解更多信息:使用 RedirectToAction 传递模型和参数

TempData["_person"] = person;
return RedirectToAction("AdministrationPortal", "Manage");
Run Code Online (Sandbox Code Playgroud)

然后

public ActionResult AdministrationPortal()
{
  Person p_model = (Person)TempData["_person"];
  return View(p_model);
}
Run Code Online (Sandbox Code Playgroud)