Я новичок в ASp. NET Core. Все данные сохранены в базе данных правильно, я попытался показать данные модели в представлении. Данные о модели человека получены правильно, но адрес второй модели не отображается в представлении. Я подозреваю, что допустил ошибку в контроллере.
Первая модель:
public class Person
{
public int PersonID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Address HomeAddress { get; set; }
}
Вторая модель:
public class Address
{
public int ID { get; set; }
public string Line { get; set; }
public string City { get; set; }
public string PostalCode { get; set; }
public string Country { get; set; }
public int PersonId { get; set; }
public Person Person { get; set; }
}
Код контроллера:
public IActionResult Index()
{
return View(_repository.Persons);
}
[HttpGet]
public ViewResult Create()
{
return View();
}
[HttpPost]
public IActionResult Create(PersonCreateViewModel p)
{
var obj = new Person
{
FirstName = p.FirstName,
LastName = p.LastName,
BirthDate = p.BirthDate,
HomeAddress = p.HomeAddress,
Role = p.Role,
IsApproved = p.IsApproved
};
_repository.Add(obj);
return View();
}
Просмотр:
@model IEnumerable<Person>
@{
ViewData["Title"] = "Home Page";
}
<div class="text-center">
@foreach(var p in Model)
{
<p>Name - @p.FirstName</p>
<p>Last Name - @p.LastName</p>
<p>Role - @p.Role</p>
<p>Line - @p.HomeAddress?.Line</p>
<p>City - @p.HomeAddress?.City</p>
}
<hr />
</div>