Я ищу, чтобы сделать основной вид детали..net MVC Master Detail View со связанными записями
У меня есть два стола tbFamily и tbFamilyMember.
В настоящее время я могу просмотреть данные о семье и перечислить связанных членов семьи, однако я хочу отделить членов семьи от их роли. т. е. я хочу отобразить список родителей/опекунов, а затем список детей, упорядоченных по дате рождения.
Мои модели заключаются в следующем:
public class tbFamily
{
public int tbFamilyID { get; set; }
public string Surname { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string Town { get; set; }
public string County { get; set; }
public string Postcode { get; set; }
public string Country { get; set; }
public string Telephone { get; set; }
public string Mobile { get; set; }
public string Email { get; set; }
public virtual ICollection<tbFamilyMember> tbFamilyMember { get; set; }
public virtual ICollection<tbFamilyData> tbFamilyData { get; set; }
}
public class tbFamilyMember
{
public int tbFamilyMemberID { get; set; }
public int tbFamilyID { get; set; }
public int Role { get; set; }
public string Firstname { get; set; }
public string Surname { get; set; }
public char Gender { get; set; }
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime DateOfBirth { get; set; }
public virtual tbFamily tbFamily { get; set; }
}
Мой контроллер в настоящее время выглядит следующим образом:
public ActionResult Details(int id = 0)
{
tbFamily tbfamily = db.tbFamily.Find(id);
if (tbfamily == null)
{
return HttpNotFound();
}
return View(tbfamily);
}
связанный с ним Посмотреть
@Html.DisplayFor(model => model.Surname)
@Html.DisplayFor(model => model.Address1)
@Html.DisplayFor(model => model.Address2)
@Html.DisplayFor(model => model.Address3)
@Html.DisplayFor(model => model.Town)
@Html.DisplayFor(model => model.County)
@Html.DisplayFor(model => model.Postcode)
@Html.DisplayFor(model => model.Country)
@Html.DisplayFor(model => model.Telephone)
@Html.DisplayFor(model => model.Mobile)
@Html.DisplayFor(model => model.Email)
@foreach (var item in Model.tbFamilyMember)
{
@Html.DisplayFor(modelItem => item.Firstname)
@Html.DisplayFor(modelItem => item.Surname)
@Html.DisplayFor(modelItem => item.Role)
}
Получить Детей:
public ActionResult GetChildren(int id)
{
var tbFamilyData = from f in db.tbFamilyMember
where f.tbFamilyID.Equals(id)
where f.Role.Equals(3)
select f;
return View(tbFamilyData);
}
связанный с ним Вид:
@foreach (var item in Model.tbFamilyData)
{
@Html.DisplayFor(modelItem => item.tbFamilyMember.Firstname)
@Html.DisplayFor(modelItem => item.tbFamilyMember.Surname)
@Html.DisplayFor(modelItem => item.tbFamilyMember.Role)
}
Просто не знаю, как получить два работают вместе!
Я создал отдельную модель tbFamilyData
public class tbFamilyData
{
public virtual tbFamily tbFamily { get; set; }
public virtual tbFamilyMember tbFamilyMember { get; set; }
}
теперь я получаю ошибку tbFamilyData не имеет ключа определен.
Надеясь, что кто-то может помочь.
спасибо Дэйв! Работает отлично. – Stephen