小さなMVCアプリケーションを作成していて、コントローラーから別のコントローラーのActionResultメソッドにUserオブジェクトを渡しています。Userオブジェクトの属性の1つは、Propertiesと呼ばれるPropertyオブジェクトのリストです。
これが摩擦です:Userオブジェクトが最終的に関連するビューに渡されるとき、そのリストにはプロパティが含まれていません。
設定は次のとおりです。
ユーザークラス:
public class User
{
public int Id {get;set;}
public List<Property> Properties {get;set;}
}
AccountController
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);
}
HomeController
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
。
誰かが提供しなければならないどんな助けやアドバイスもありがたいことに受け取られるでしょう。