私は RegisterViewModel と呼ばれるビューモデルを持っています -
public class RegisterViewModel
{
public string UserName { get; set; }
public string Email { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
User と UserDetails という 2 つのモデル
public class User
{
[Key]
public string UserName { get; set; }
public string Email { get; set; }
public virtual ICollection<Role> Roles { get; set; }
public virtual UserDetails UserDetails { get; set; }
}
public class UserDetails
{
[Key]
public string UserName { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
[Required]
public virtual User User { get; set; }
}
私のユーザーコントローラーには、詳細メソッドとして次のものがあります-
public ViewResult Details(string id)
{
User user = context.Users
.Include (i => i.UserDetails)
.Where(i => i.UserName == id)
.Single();
user.UserDetails = new UserDetails();
RegisterViewModel viewModel = new RegisterViewModel{
UserName = user.UserName,
FirstName = user.UserDetails.FirstName,
LastName = user.UserDetails.LastName,
Salary = user.UserDetails.Salary,
Email = user.Email,
Roles = user.Roles
};
return View(viewModel);
}
そして私の詳細ビューで -
@model TRS.ViewModels.RegisterViewModel
<table>
<tr>
<td>User Name</td>
<td>@Model.UserName</td>
</tr>
<tr>
<td>Email</td>
<td>@Model.Email</td>
</tr>
<tr>
<td>First Name</td>
<td>@Model.FirstName</td>
</tr>
<tr>
<td>Last Name</td>
<td>@Model.LastName</td>
</tr>
<tr>
<td>Roles</td>
<td>@foreach (Role role in Model.Roles) {
@role.RoleName<br />
}</td>
</tr>
しかし、私は User モデルから日付を取得しているだけで、UserDetails には何も取得していません。したがって、ユーザー名、電子メール、およびロールは表示されますが、名または姓は表示されません。
ここでどこが間違っているかわかりますか?
ありがとう