我正在创建一个小型 MVC 应用程序,并将一个用户对象从一个控制器传递到另一个控制器中的 ActionResult 方法。User 对象的属性之一是称为Properties 的Property 对象列表。
问题是:当用户对象最终传递给相关视图时,它的列表不包含任何属性。
这是设置:
用户等级:
public class User
{
public int Id {get;set;}
public List<Property> Properties {get;set;}
}
帐户控制器
public ActionResult LogOn(int userId, string cryptedHash)
{
//code to logOn (this works, promise)
User user = dbContext.getUser(userId);
//debugging shows the user contains the list of properties at this point
return RedirectToAction("UserHome", "Home", user);
}
家庭控制器
public ActionResult UserHome(User user)
{
ViewBag.Messaage = "Hello, " + user.Forename + "!";
return View(user); //debugging shows that user.Properties is now empty(!)
}
UserHome.cshtml 查看
@model emAPI.Model_Objects.User
@{
ViewBag.Title = "UserHome";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>UserHome</h2>
<div>
@Model.Forename, these are your properties:
<ul>
@foreach (var property in @Model.Properties)
{
<li>property.Name</li>
}
</ul>
</div>
视图加载没有任何问题 -@Model.Forename
很好,但就收到它HomeController
而言,它是空的,尽管我知道它在发送时不是。user.Properties
AccountController
任何人必须提供的任何帮助或建议都将被感激地接受。