我使用RedirectToAction在登录后加载新页面并使用它传递数据库模型。
RedirectToAction("AdministrationPortal", "Manage", person);
person.user模型是由实体框架创建的User类。人的模型是
class Person {
public User user { get; set; };
public string roleType { get; set; };
}
I节点person对象确实在调用RedirectToAction时保存数据。
我不知道为什么当我在门户网站页面@Model.Person.user
上使用它时为空。
@model namespace.Model.Person
答案 0 :(得分:2)
使用This <a href="/some/link.html">link</a> is broken
重定向时,无法传递复杂对象。
它用于传递RedirectToAction
而非模型。
要暂时保留重定向结果的状态,您需要将数据存储在routeValues
。
您可以参考此处获取更多信息:passing model and parameter with RedirectToAction
TempData
然后
TempData["_person"] = person;
return RedirectToAction("AdministrationPortal", "Manage");
答案 1 :(得分:1)
当我需要在RedirectToAction
中发送模型时,我只是传递id(假设你的人有id):
return RedirectToAction("AdministrationPortal", "Manage", new { @id=person.Id} );
然后在控制器:
public ActionResult AdministrationPortal(long id)
{
//Get Person from DB
var model=GetPersonById(id);
return View(model);
}
我个人不喜欢使用TempData,但如果你想使用它,那么:
TempData["Person"] =person;
return RedirectToAction("AdministrationPortal", "Manage");